/* Waves Engineering — livello responsive condiviso.
   È caricato per ultimo: qui vanno gli override mobile comuni a tutti i template. */
@media (max-width: 767px) {
  :root {
    --mobile-gutter: 20px;
    --mobile-section: 72px;
    --mobile-radius: 22px;
  }

  html { overflow-x: clip; scroll-padding-top: 82px; }
  body { min-width: 320px; overflow-x: clip; font-size: 16px; line-height: 1.6; text-rendering: optimizeLegibility; }
  body.menu-open { overscroll-behavior: none; }
  .container,.training-body .container { width: min(calc(100% - 40px),680px); }
  img { max-width: 100%; }
  p { text-wrap: pretty; }
  main p,.single-content>p,.single-content .article-lead>p { text-align: left; text-align-last: auto; hyphens: none; }
  .eyebrow,.company-eyebrow,.technical-eyebrow,.market-eyebrow,.blog-kicker,.sim-eyebrow { font-size: 11px; line-height: 1.35; letter-spacing: .105em; }
  .section,.company-section,.technical-section,.sim-section { padding-block: var(--mobile-section); }
  .section-title,.company-section-head h2,.technical-section-head h2,.market-section-head h2,.sim-section-head h2 { font-size: clamp(34px,9.5vw,40px); line-height: 1.04; letter-spacing: -.045em; }
  .section-copy { margin-top: 22px; font-size: 17px; line-height: 1.58; }
  .hero h1,.company-hero h1,.technical-hero h1,.training-hero h1,.sim-hero h1,.market-hero h1,.contact-hero h1,.blog-hero h1,
  .cookie-settings-page .cookie-settings-hero h1,.legal-hero-copy h1 {
    max-width: 100%;
    font-size: clamp(40px,11.25vw,48px)!important;
    line-height: 1!important;
    letter-spacing: -.052em!important;
    overflow-wrap: normal;
    text-wrap: balance;
  }

  /* Header and navigation */
  .site-header { min-height: 70px; padding: 8px 0; border-bottom-color: rgba(17,17,17,.07); }
  .header-inner { grid-template-columns: 1fr 48px 48px; gap: 8px; min-height: 53px; }
  .brand-logo { width: 72px; }
  .brand-logo img { width: 60px; height: 48px; }
  .search-trigger { width: 48px; height: 48px; border-radius: 16px; }
  .search-trigger svg { width: 20px; height: 20px; }
  .menu-toggle { display: grid; place-content: center; width: 48px; height: 48px; padding: 8px; border-radius: 14px; }
  .menu-toggle:active { background: rgba(5,148,68,.07); }
  .main-nav {
    inset: 69px 0 0;
    height: calc(100dvh - 69px);
    max-height: none;
    padding: 12px var(--mobile-gutter) calc(30px + env(safe-area-inset-bottom));
    overflow-y: auto;
    border-bottom: 0;
    background: rgba(255,255,255,.985);
    box-shadow: 0 22px 55px rgba(17,17,17,.08);
    overscroll-behavior: contain;
    justify-content: flex-start;
  }
  .main-nav>a,.nav-dropdown-trigger>a { display: flex; align-items: center; min-height: 54px; padding: 0; font-size: 18px; }
  .main-nav>a::after { display: none; }
  .nav-dropdown-trigger { min-height: 54px; }
  .submenu-toggle { width: 52px; height: 54px; border-radius: 14px; }
  .nav-submenu { padding: 4px 0 10px 15px; }
  .nav-submenu a { display: flex; flex-direction: column; justify-content: center; min-height: 52px; padding: 8px 12px; font-size: 15px; white-space: normal; }
  .main-nav>a:last-child { justify-content: space-between; min-height: 58px; margin-top: 16px; padding: 0 18px; border: 0; border-radius: 16px; color: #fff; background: #059444; }
  .main-nav>a:last-child::before { content: "Parliamo del tuo progetto"; font-size: 13px; }
  .main-nav>a:last-child { font-size: 0; }
  .main-nav>a:last-child::after { display: block; position: static; width: auto; height: auto; color: #fff; background: transparent; content: "→"; font-size: 19px; }
  .method-sim-page .main-nav,.site-header.is-dark .main-nav { background: rgba(15,16,18,.985); }
  .training-body .main-nav { background: rgba(224,70,18,.985); }
  .waves-search-overlay { padding: 86px 16px 24px; }
  .waves-search-modal { padding: 22px 18px 20px; border-radius: 24px; }
  .waves-search-heading h2 { font-size: 17px; }
  .waves-search-shortcut { display: none; }
  .waves-search-input-row { grid-template-columns: 22px minmax(0,1fr) 40px; min-height: 62px; gap: 10px; padding: 0 10px 0 16px; border-radius: 18px; }
  .waves-search-input-row input { font-size: 16px!important; }
  .waves-search-suggestions div { gap: 8px; }
  .waves-search-suggestions button { min-height: 40px; }

  /* Consistent controls and touch */
  main .btn,.company-button,.technical-button,.market-button,.training-hero-button,.training-custom-course-cta,.regulation-button,.method-cta,.standards-link { min-height: 56px; border-radius: 16px; }
  input,select,textarea { font-size: 16px!important; }
  button,a,summary { touch-action: manipulation; }
  button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible { outline: 3px solid rgba(5,148,68,.45); outline-offset: 3px; }

  /* Homepage */
  body.home .hero { min-height: auto; padding: 108px 0 26px; }
  body.home .hero-grid { min-height: 0; padding-top: 20px; }
  body.home .hero-copy { padding-bottom: 28px; }
  body.home .hero-eyebrow { max-width: 330px; margin-bottom: 26px; line-height: 1.65; }
  body.home .hero h1 { font-size: clamp(42px,12vw,50px)!important; }
  body.home .hero-lead { max-width: 34ch; margin: 28px 0 32px; font-size: 18px; line-height: 1.6; }
  body.home .hero-actions .btn { width: 100%; }
  body.home .hero-actions .btn-primary { color: #fff; border-color: #059444; background: #059444; box-shadow: 0 12px 28px rgba(5,148,68,.18); }
  body.home .hero-visual { display: block; opacity: .16; }
  body.home .hero-visual::after { background: linear-gradient(180deg,rgba(248,250,249,.99),rgba(248,250,249,.86) 62%,rgba(248,250,249,.72)); }
  body.home .hero-visual img { object-position: 68% center; }
  .hero>.standards { margin-top: 0; }
  .hero>.standards .standards-inner { grid-template-columns: repeat(2,minmax(0,1fr)); min-height: 0; padding: 28px 0 10px; }
  .hero>.standards .standards-label { position: static; grid-column: 1/-1; margin-bottom: 8px; }
  .hero>.standards .standard { min-height: 96px; }
  .hero>.standards .standard img { height: 36px; }
  .hero>.standards .standards-link { grid-column: 1/-1; width: 100%; margin: 10px 0 4px; }
  .machine-regulation-copy { padding: 68px 0 34px; }
  .machine-regulation-eyebrow { margin-bottom: 24px; line-height: 1.4; }
  .machine-regulation h2 { font-size: clamp(38px,10.4vw,44px); line-height: 1.02; }
  .machine-regulation-text,.machine-regulation-strong { margin-top: 24px; font-size: 17px; line-height: 1.58; }
  .machine-regulation-actions { margin-top: 32px; }
  .regulation-button,.regulation-button-primary,.regulation-button-secondary { min-height: 64px; }
  .machine-regulation-visual { min-height: 330px; overflow: hidden; }
  .machine-regulation-visual img { left: 50%; width: 125%; max-width: none; transform: translateX(-50%); }
  body.home .method { padding: 74px 0; }
  body.home .method-grid { gap: 46px; }
  body.home .method h2 { font-size: 40px; line-height: 1.02; }
  body.home .method-description { font-size: 17px; }
  body.home .method-card { grid-template-columns: 48px minmax(0,1fr); gap: 16px; padding: 24px 20px; border-radius: 20px; }
  body.home .method-icon { width: 48px; height: 48px; }
  body.home .method-icon svg { width: 27px; height: 27px; }
  body.home .method-timeline::before { display: none; }
  body.home .method-card-copy h3 { font-size: 25px; }
  body.home .method-card-copy p { font-size: 16px; }
  body.home #servizi .services-head { text-align: left; }
  body.home #servizi .services-head .btn { width: 100%; }
  body.home #servizi .service-card { min-height: 0; padding: 25px 22px; border-radius: 20px; }
  body.home #servizi .service-card h3 { margin-top: 22px; font-size: 23px; }
  body.home .cta-panel { gap: 28px; padding: 32px 24px; }
  body.home .cta-panel h2 { font-size: 34px; line-height: 1.04; }

  /* Metodo SIM */
  .method-sim-page .site-header { background: rgba(10,11,12,.88); }
  .sim-page::before { position: absolute; }
  .sim-hero { min-height: auto; padding: 112px 0 72px; background-image: linear-gradient(90deg,#080a0b 4%,rgba(8,10,11,.86) 28%,rgba(8,10,11,.15) 66%,rgba(8,10,11,.025)),linear-gradient(180deg,rgba(8,10,11,.035),rgba(8,10,11,.22) 68%,rgba(8,10,11,.92) 100%),url("sim-hero-mobile.avif"); background-position: center,center,63% 45%; background-size: cover,cover,auto 100%; }
  .sim-hero::after { position: absolute; inset: 0; background: linear-gradient(180deg,rgba(8,10,11,.1),rgba(8,10,11,.42)); content: ""; pointer-events: none; }
  .sim-hero .container { position: relative; z-index: 1; }
  .sim-hero-copy>p:not(.sim-eyebrow),.sim-copy-block>p:not(.sim-eyebrow),.sim-final-card>div>p:not(.sim-eyebrow) { font-size: 17px; line-height: 1.62; }
  .sim-actions { gap: 12px; }
  .sim-actions>* { width: 100%; }
  .sim-meaning-grid,.sim-small-grid,.sim-output-grid,.sim-benefit-grid { gap: 14px; }
  .sim-glass,.sim-phase-card,.sim-benefit-card { padding: 24px 21px; border-radius: 20px; }
  .sim-split { gap: 44px; }
  .sim-final-card { gap: 34px; padding: 30px 22px; border-radius: 22px; }

  /* Company */
  .company-hero { min-height: auto; padding: 108px 0 70px; }
  .company-hero-grid { min-height: 0; }
  .company-hero-copy>p:not(.company-eyebrow) { font-size: 17px; line-height: 1.62; }
  .company-actions { display: grid; gap: 12px; }
  .company-actions>* { width: 100%; }
  .company-hero-image { margin-top: 32px; max-height: 360px; object-fit: cover; object-position: center; border-radius: 22px; }
  .company-glass,.company-value-card,.company-future-card { border-radius: 20px; backdrop-filter: none; -webkit-backdrop-filter: none; }
  .company-philosophy-card,.company-why-card,.company-final-card { padding: 28px 22px; }
  .company-values-grid { gap: 14px; }
  .company-value-card { min-height: 0; padding: 25px 22px; }
  .company-future-grid { grid-template-columns: 1fr; }
  .company-future-card { min-height: 330px; }

  /* Technical services */
  .technical-hero { padding: 108px 0 56px; }
  .technical-hero h1 { font-size: clamp(42px,11.4vw,48px)!important; }
  .technical-hero-copy>p:not(.technical-eyebrow) { font-size: 17px; }
  .technical-actions { display: grid; }
  .technical-actions>* { width: 100%; }
  .technical-hero-visual { margin-top: 30px; }
  .technical-hero-visual img { aspect-ratio: 16/10; object-fit: cover; object-position: center; }
  .technical-section-head { margin-bottom: 30px; text-align: left; }
  .technical-timeline,.training-category-grid,.blog-filters { scroll-snap-type: x proximity; overscroll-behavior-x: contain; -webkit-overflow-scrolling: touch; scrollbar-width: none; -ms-overflow-style: none; }
  .technical-step,.training-category-card,.blog-filters>a,.blog-filters>button { scroll-snap-align: start; }
  .technical-timeline::-webkit-scrollbar,.training-category-grid::-webkit-scrollbar,.blog-filters::-webkit-scrollbar { display: none; }
  .technical-timeline { margin-inline: -20px; padding-inline: 20px; scroll-padding-inline: 20px; }
  .technical-step { flex-basis: 150px; min-height: 154px; }
  .technical-services-grid { gap: 14px; }
  .technical-service-card { min-height: 0; padding: 24px 22px; }
  .technical-service-card p { max-width: none; font-size: 16px; }
  .technical-sector-grid { gap: 12px; }
  .technical-final-copy h2 { font-size: 36px; }
  .technical-modal-content { padding-bottom: 110px; overflow-y: auto; }
  .technical-modal-intro h2 { font-size: 35px; }
  .technical-modal-intro p { font-size: 16px; }
  .technical-modal-details,.technical-modal-bottom { grid-template-columns: 1fr; }
  .technical-modal-footer { position: sticky; bottom: 0; z-index: 5; min-height: 76px; }

  /* Training */
  .training-hero { padding: 108px 0 48px; }
  .training-hero h1 { font-size: clamp(40px,11.2vw,46px)!important; }
  .training-lead { font-size: 17px; }
  .training-facts { grid-template-columns: 1fr 1fr; }
  .training-facts article { min-height: 108px; padding: 18px 16px; }
  .training-categories { margin-top: 54px; padding-top: 0; }
  .training-categories h2,.training-catalogue-head h2 { font-size: 31px; line-height: 1.08; }
  .training-category-shell { position: relative; }
  .training-category-grid { scroll-padding-inline: 20px; overscroll-behavior-x: contain; }
  .training-category-card { flex-basis: min(78vw,286px); min-height: 214px; }
  .training-download-brochure { width: 100%; }
  .training-topic-intro h2,.training-topic-modal.is-dense-topic .training-topic-intro h2 { font-size: 34px; }
  .training-topic-intro p,.training-topic-modal.is-dense-topic .training-topic-intro p { font-size: 17px; line-height: 1.55; }
  .training-topic-course-copy h4,.training-topic-modal.is-dense-topic .training-topic-course-copy h4 { font-size: 15px; line-height: 1.35; }
  .training-topic-course-meta { margin-left: 0!important; gap: 8px; font-size: 11px; white-space: nowrap; }
  .training-course-detail-copy h2 { font-size: 34px; }
  .training-course-detail-copy>p { display: block; overflow: visible; font-size: 17px; line-height: 1.55; -webkit-line-clamp: unset; }
  .training-course-detail-cards article { min-height: 0; padding: 24px 20px; }
  .training-course-detail-cards li { font-size: 16px; }

  /* Normative and contact */
  .market-hero,.contact-hero { padding: 108px 0 70px; }
  .market-hero-copy,.contact-copy { padding-top: 0; }
  .market-hero-copy>p:not(.market-eyebrow),.contact-copy>p:not(.market-eyebrow) { font-size: 17px; line-height: 1.6; }
  .market-actions { gap: 12px; }
  .market-hero-visual { min-height: 260px; }
  .market-standard-grid { gap: 10px; }
  .market-standard-grid span { min-height: 82px; padding: 11px 8px; }
  .market-card-grid,.market-index-grid,.contact-path-grid { gap: 14px; }
  .market-card { padding: 26px 22px; border-radius: 20px; }
  .market-process-panel { padding: 30px 22px; }
  .market-final-panel { padding: 30px 22px; }
  .market-index-card { grid-template-columns: 62px minmax(0,1fr) 20px; gap: 15px; padding: 22px 18px; }
  .contact-direct a { min-height: 68px; }
  .contact-form-panel { padding: 25px 20px; }
  .contact-form-panel input,.contact-form-panel select { height: 56px; }
  .contact-form-panel textarea { min-height: 150px; }

  /* Blog index */
  .blog-hero { padding: 108px 0 36px; }
  .blog-hero-grid { display: block; }
  .blog-hero-copy>p:not(.blog-kicker) { font-size: 17px; }
  .blog-search { width: 100%; min-height: 58px; margin-top: 28px; }
  .blog-hero-art { opacity: .4; }
  .blog-filters { margin-inline: -20px; padding-inline: 20px; border-right: 0; border-left: 0; border-radius: 0; scroll-padding-inline: 20px; }
  .blog-filters a { flex: 0 0 auto; min-height: 46px; }
  .blog-grid { gap: 16px; margin-top: 28px; }
  .article-card { border-radius: 20px; backdrop-filter: none; -webkit-backdrop-filter: none; }
  .article-image { aspect-ratio: 16/9; }
  .article-body { min-height: 0; padding: 22px 20px; }
  .article-body h2 { font-size: 22px; }
  .article-meta { margin-top: 24px; }
  .newsletter-panel { margin-top: 48px; padding: 26px 22px; }
  .newsletter-panel form { width: 100%; }
  .newsletter-panel input[type="email"] { width: 100%; min-height: 56px; }
  .newsletter-panel .btn { width: 100%; }
  .blog-pagination { flex-wrap: wrap; gap: 8px; }

  /* Long-form articles */
  .single-article { padding-top: 69px; }
  .single-hero { min-height: auto; padding: 42px 0 46px; }
  .single-hero h1 { font-size: clamp(36px,9.8vw,42px); line-height: 1.03; letter-spacing: -.048em; }
  .single-back { min-height: 48px; margin-bottom: 26px; padding-inline: 16px; border: 1px solid rgba(255,255,255,.5); border-radius: 14px; }
  .single-excerpt { margin-top: 24px; font-size: 18px; line-height: 1.58; }
  .single-meta { flex-wrap: wrap; gap: 10px 16px; }
  .single-layout { width: calc(100% - 24px); padding-top: 18px; }
  .single-content { padding: 28px 20px; border-radius: 20px; font-size: 17px; line-height: 1.72; }
  .single-content h2 { margin-top: 1.8em; font-size: 30px; line-height: 1.1; }
  .single-content h3 { font-size: 23px; }
  .article-summary,.article-toc,.article-inline-cta,.article-related-links,.article-feature-box { margin-block: 26px; padding: 21px 19px; border-radius: 18px; }
  .article-toc a { display: flex; align-items: center; min-height: 44px; padding-block: 7px; }
  .article-checklist,.article-error-grid { gap: 10px; }
  .single-content .article-checklist li,.article-error-item { padding: 16px 16px 16px 44px; border-radius: 14px; }
  .article-table-wrap { position: relative; margin-inline: -8px; border-radius: 14px; -webkit-overflow-scrolling: touch; }
  .article-comparison { min-width: 680px; font-size: 15px; }
  .article-faq details { padding: 12px 18px; }
  .article-faq summary { display: flex; align-items: center; min-height: 44px; }
  .article-related-links a,.article-source-note a { display: inline-flex; align-items: center; min-height: 44px; }
  .article-share-panel,.article-project-panel { max-height: calc(100dvh - 32px); overflow-y: auto; border-radius: 22px; }

  /* Full-screen detail drawers: the Apple-style dot keeps a generous touch target. */
  .technical-modal-header { grid-template-columns: 44px minmax(0,1fr); }
  .technical-modal-close,.training-topic-close,.training-course-detail-close { position: relative; width: 44px!important; height: 44px!important; border: 0!important; background: transparent!important; box-shadow: none!important; }
  .technical-modal-close::before,.training-topic-close::before,.training-course-detail-close::before { position: absolute; top: 50%; left: 50%; width: 17px; height: 17px; border: 1px solid rgba(130,20,14,.20); border-radius: 50%; background: #ff5f57; box-shadow: inset 0 -1px 1px rgba(0,0,0,.12); content: ""; transform: translate(-50%,-50%); }
  .technical-service-cta .technical-button { min-height: 52px; }

  /* Legal and cookie pages */
  .legal-policy-page .legal-hero { padding: 108px 0 54px; }
  .legal-hero-actions { gap: 12px; }
  .legal-hero-visual { min-height: 270px; padding: 24px 18px; }
  .legal-orbit { width: 145px; height: 145px; }
  .legal-hero-visual dl { margin-top: 16px; }
  .legal-language-bar { width: calc(100% - 40px); }
  .legal-language-bar button { min-height: 48px; }
  .legal-policy-page .legal-layout { width: calc(100% - 24px); padding-top: 22px; }
  .legal-policy-page .legal-content { padding: 25px 18px; border-radius: 20px; }
  .legal-policy-page .legal-content h2 { margin-top: 54px; font-size: 29px; }
  .legal-policy-page .legal-content p,.legal-policy-page .legal-content li { font-size: 16px; line-height: 1.7; }
  .legal-policy-page .legal-content ul { padding: 18px 18px 18px 36px; }
  .legal-policy-page .legal-table-scroll { position: relative; margin-inline: -18px; padding-inline: 18px; overflow-x: auto; border-right: 0; border-left: 0; border-radius: 0; -webkit-overflow-scrolling: touch; }
  .legal-policy-page .legal-content table { min-width: 620px; font-size: 14px; }
  .legal-document-label { align-items: flex-start; flex-direction: column; }
  .cookie-settings-page .cookie-settings-hero { padding: 108px 0 88px; }
  .cookie-settings-page .cookie-settings-stack { gap: 44px; }
  .cookie-settings-page .cookie-status-card { margin-top: -40px; padding: 22px 18px; border-radius: 20px; }
  .cookie-settings-page .cookie-setting-card,.cookie-settings-page .cookie-settings-actions { padding: 24px 20px; border-radius: 20px; }
  .cookie-settings-page .cookie-page-switch,.consent-dialog .consent-switch { min-height: 44px; padding-block: 8px; }
  .cookie-settings-page .cookie-settings-section-head h2 { font-size: 34px; }

  /* Footer and consent */
  .site-footer { padding-top: 48px; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 36px 20px; padding-bottom: 38px; }
  .footer-brand,.footer-contact { grid-column: 1/-1; }
  .footer-column { gap: 0; }
  .footer-column h2 { margin-bottom: 10px; font-size: 11px; }
  .footer-column a { display: flex; align-items: center; min-height: 44px; font-size: 13px; line-height: 1.35; }
  .footer-column a,.footer-bottom a { min-width: 44px; }
  .footer-social { gap: 10px; }
  .footer-social a,.method-sim-page .footer-social a { width: 44px; height: 44px; }
  .footer-bottom { padding-bottom: 28px; font-size: 11px; }
  .footer-bottom nav { display: grid; grid-template-columns: 1fr; width: 100%; margin-top: 16px; }
  .footer-bottom nav a { display: flex; align-items: center; min-height: 44px; }
  .consent-banner { right: 12px; bottom: calc(12px + env(safe-area-inset-bottom)); left: 12px; width: auto; max-height: calc(100dvh - 24px - env(safe-area-inset-bottom)); overflow-y: auto; border-radius: 22px; }
  .consent-banner-actions { display: grid; grid-template-columns: 1fr; }
  .consent-banner-actions button,.consent-banner-actions a { width: 100%; min-height: 52px; }
  .contact-consent { min-height: 44px; align-items: center; }
  .contact-consent input { width: 20px!important; height: 20px!important; min-height: 20px!important; }
  .contact-consent span { line-height: 1.5; }
  .newsletter-consent { min-height: 44px; align-items: center; }
  .newsletter-consent input { flex: 0 0 18px; width: 18px!important; height: 18px!important; min-height: 18px!important; }
  .newsletter-consent a,.contact-consent a { display: inline-flex; align-items: center; min-height: 44px; }

  .hero-visual>picture,.machine-regulation-visual>picture,.technical-hero-visual>picture,.technical-sector-image>picture,.training-hero-visual>picture,.blog-hero-art>picture { display: block; width: 100%; height: 100%; }

  /* Mobile should feel calm; retain only navigation/modal transitions. */
  body.motion-ready .reveal-section,body.motion-ready .reveal-card { opacity: 1!important; transform: none!important; transition: none!important; }
  .service-card,.method-card,.company-value-card,.technical-service-card,.market-card,.article-card { animation: none!important; }
}

/**
 * Mobile Premium Sprint — 2026-07-28.
 * Queste regole sono volutamente limitate a telefono/tablet piccolo:
 * stabilizzano drawer, menu, corsi e articoli senza modificare il desktop.
 */
@media (max-width: 767px) {
  :root {
    --mobile-premium-gutter: clamp(18px, 5vw, 24px);
    --mobile-premium-radius: 24px;
    --mobile-premium-shadow: 0 18px 48px rgba(17,17,17,.06), inset 0 1px 0 rgba(255,255,255,.9);
  }

  html,
  body {
    max-width: 100%;
    overflow-x: clip !important;
  }

  body {
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
  }

  /* Header/menu: il drawer diventa un pannello premium compatto, non una pagina bianca gigante. */
  .site-header {
    min-height: 72px !important;
    padding-block: 9px !important;
  }

  .header-inner {
    width: 100% !important;
    min-height: 54px !important;
    padding-inline: var(--mobile-premium-gutter) !important;
  }

  .search-trigger,
  .menu-toggle {
    width: 52px !important;
    height: 52px !important;
    border-radius: 18px !important;
  }

  .menu-toggle span,
  .menu-toggle[aria-expanded="true"] span {
    width: 27px !important;
    height: 2.5px !important;
    margin: 4px auto !important;
    border-radius: 999px !important;
    transform: none !important;
    opacity: 1 !important;
  }

  .main-nav {
    inset: calc(74px + env(safe-area-inset-top)) var(--mobile-premium-gutter) auto !important;
    width: auto !important;
    max-height: min(74dvh, 620px) !important;
    padding: 14px !important;
    border: 1px solid rgba(17,17,17,.075) !important;
    border-radius: 28px !important;
    background: rgba(255,255,255,.955) !important;
    box-shadow: 0 30px 90px rgba(17,17,17,.16), inset 0 1px 0 rgba(255,255,255,.96) !important;
    backdrop-filter: blur(28px) saturate(170%) !important;
    -webkit-backdrop-filter: blur(28px) saturate(170%) !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
  }

  .main-nav > a,
  .nav-dropdown-trigger > a {
    min-height: 52px !important;
    padding: 13px 15px !important;
    border-radius: 17px !important;
    color: #141414 !important;
    font-size: 17px !important;
    font-weight: 740 !important;
    letter-spacing: -.018em !important;
  }

  /* Ripristina "Contatti/Contact" come voce reale: non deve essere mascherata da CTA. */
  .main-nav > a:last-child,
  .main-nav > a:last-of-type {
    justify-content: flex-start !important;
    min-height: 52px !important;
    margin-top: 0 !important;
    padding: 13px 15px !important;
    color: #141414 !important;
    background: transparent !important;
    font-size: 17px !important;
  }

  .main-nav > a:last-child::before,
  .main-nav > a:last-of-type::before,
  .main-nav > a:last-child::after,
  .main-nav > a:last-of-type::after {
    display: none !important;
    content: none !important;
  }

  .nav-dropdown-trigger {
    grid-template-columns: minmax(0,1fr) 52px !important;
    gap: 4px !important;
  }

  .submenu-toggle {
    width: 52px !important;
    height: 52px !important;
    color: #141414 !important;
    border-radius: 17px !important;
  }

  .nav-submenu {
    margin: 4px 0 12px !important;
    padding: 8px !important;
    border-radius: 20px !important;
  }

  .nav-submenu a {
    min-height: 46px !important;
    padding: 10px 12px !important;
    border-radius: 14px !important;
    font-size: 14.5px !important;
    line-height: 1.25 !important;
  }

  .language-switch-mobile {
    padding: 10px 4px 2px !important;
  }

  body.training-body .site-header,
  body.training-contact-body .site-header {
    background: rgba(255,90,31,.95) !important;
    color: #fff !important;
  }

  body.training-body .menu-toggle span,
  body.training-contact-body .menu-toggle span {
    background: #fff !important;
  }

  body.training-body .site-header .main-nav,
  body.training-contact-body .site-header .main-nav {
    background: rgba(255,255,255,.965) !important;
    border-color: rgba(255,90,31,.16) !important;
  }

  body.training-body .site-header .main-nav > a,
  body.training-contact-body .site-header .main-nav > a,
  body.training-body .site-header .nav-dropdown-trigger > a,
  body.training-contact-body .site-header .nav-dropdown-trigger > a {
    color: #141414 !important;
  }

  /* Hero mobile: più respiro e gerarchia, niente visual desktop che invade il testo. */
  .hero,
  .company-hero,
  .technical-hero,
  .training-hero,
  .blog-hero,
  .sim-hero,
  .market-hero,
  .contact-hero {
    padding-top: clamp(96px, 24vw, 118px) !important;
    padding-bottom: 64px !important;
  }

  .hero h1,
  .company-hero h1,
  .technical-hero h1,
  .training-hero h1,
  .blog-hero h1,
  .sim-hero h1,
  .market-hero h1,
  .contact-hero h1,
  .single-hero h1 {
    font-size: clamp(38px, 10.6vw, 48px) !important;
    line-height: 1.02 !important;
    letter-spacing: -.048em !important;
    text-wrap: balance !important;
  }

  .hero-lead,
  .company-hero-copy > p:not(.company-eyebrow),
  .technical-hero-copy > p:not(.technical-eyebrow),
  .training-lead,
  .blog-hero-copy > p:not(.blog-kicker),
  .sim-hero-copy > p:not(.sim-eyebrow),
  .contact-copy > p:not(.market-eyebrow),
  .single-excerpt {
    font-size: 18px !important;
    line-height: 1.62 !important;
    color: rgba(17,17,17,.68) !important;
  }

  body.home .hero-visual {
    display: none !important;
  }

  body.home .hero {
    padding-bottom: 44px !important;
  }

  .section,
  .company-section,
  .technical-section,
  .sim-section,
  .market-section,
  .machine-regulation {
    padding-block: 72px !important;
  }

  .section-title,
  .company-section-head h2,
  .technical-section-head h2,
  .market-section-head h2,
  .sim-section-head h2,
  .machine-regulation h2 {
    font-size: clamp(33px, 9vw, 40px) !important;
    line-height: 1.06 !important;
  }

  .service-card,
  .technical-service-card,
  .company-value-card,
  .article-card,
  .contact-info-card,
  .contact-form-panel {
    border-radius: var(--mobile-premium-radius) !important;
    box-shadow: var(--mobile-premium-shadow) !important;
  }

  /* Formazione: il primo livello diventa un vero drawer mobile. */
  body.training-topic-open,
  body.training-course-detail-open {
    overflow: hidden !important;
    touch-action: none;
  }

  .training-topic-layer.is-open,
  .training-course-detail-layer.is-open {
    position: fixed !important;
    inset: 0 !important;
    display: block !important;
    padding: 0 !important;
    overflow: hidden !important;
    z-index: 300 !important;
  }

  .training-topic-modal,
  .training-course-detail-modal {
    position: relative !important;
    display: grid !important;
    grid-template-rows: 66px minmax(0,1fr) auto !important;
    width: 100% !important;
    height: 100dvh !important;
    height: 100svh !important;
    max-width: none !important;
    max-height: none !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    overflow: hidden !important;
    background: rgba(255,253,251,.98) !important;
  }

  .training-topic-header,
  .training-course-detail-header {
    grid-row: 1 !important;
    display: flex !important;
    align-items: center !important;
    min-height: 66px !important;
    height: 66px !important;
    padding: 0 22px !important;
    border-bottom: 1px solid rgba(17,17,17,.06) !important;
    background: rgba(255,253,251,.96) !important;
  }

  .training-topic-close,
  .training-course-detail-close,
  .technical-modal-close {
    position: relative !important;
    display: block !important;
    width: 44px !important;
    height: 44px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  .training-topic-close::before,
  .training-course-detail-close::before,
  .technical-modal-close::before {
    position: absolute !important;
    top: 13px !important;
    left: 13px !important;
    width: 16px !important;
    height: 16px !important;
    border: 1px solid rgba(130,20,14,.22) !important;
    border-radius: 999px !important;
    background: #ff5f57 !important;
    box-shadow: inset 0 -1px 1px rgba(0,0,0,.13), 0 1px 2px rgba(0,0,0,.08) !important;
    transform: none !important;
    content: "" !important;
  }

  .training-topic-content,
  .training-course-detail-content {
    grid-row: 2 !important;
    display: block !important;
    min-height: 0 !important;
    height: auto !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    padding: 20px var(--mobile-premium-gutter) 28px !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior: contain !important;
  }

  .training-topic-footer,
  .training-course-detail-navigation {
    grid-row: 3 !important;
    position: relative !important;
    display: grid !important;
    grid-template-columns: minmax(0,1fr) auto minmax(0,1fr) !important;
    align-items: center !important;
    gap: 10px !important;
    min-height: calc(82px + env(safe-area-inset-bottom)) !important;
    padding: 0 var(--mobile-premium-gutter) env(safe-area-inset-bottom) !important;
    border-top: 1px solid rgba(17,17,17,.06) !important;
    background: rgba(255,255,255,.97) !important;
  }

  .training-topic-hero {
    display: block !important;
    min-height: 0 !important;
    height: auto !important;
    margin: 0 0 20px !important;
    padding: 24px 22px !important;
    overflow: visible !important;
    border-radius: 26px !important;
  }

  .training-topic-intro {
    display: grid !important;
    grid-template-columns: 62px minmax(0,1fr) !important;
    gap: 14px 16px !important;
    align-items: start !important;
    padding: 0 !important;
  }

  .training-topic-icon {
    grid-row: 1 / span 3 !important;
    width: 62px !important;
    height: 62px !important;
    margin: 0 !important;
    border-radius: 18px !important;
  }

  .training-topic-area-badge {
    justify-self: start !important;
    width: auto !important;
    max-width: 100% !important;
    min-height: 34px !important;
    padding: 8px 14px !important;
    font-size: 11px !important;
    line-height: 1 !important;
    white-space: nowrap !important;
  }

  .training-topic-intro h2,
  .training-topic-modal.is-dense-topic .training-topic-intro h2 {
    margin: 4px 0 0 !important;
    overflow: visible !important;
    font-size: clamp(34px, 9.4vw, 42px) !important;
    line-height: 1.02 !important;
    letter-spacing: -.045em !important;
    text-wrap: balance !important;
  }

  .training-topic-intro p,
  .training-topic-modal.is-dense-topic .training-topic-intro p {
    grid-column: 1 / -1 !important;
    display: block !important;
    max-width: none !important;
    margin: 10px 0 0 !important;
    overflow: visible !important;
    color: #4e4e4e !important;
    font-size: 18px !important;
    line-height: 1.56 !important;
    white-space: normal !important;
    text-overflow: clip !important;
    -webkit-line-clamp: unset !important;
  }

  .training-topic-visual {
    display: none !important;
  }

  .training-topic-courses,
  .training-topic-standards {
    display: block !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 0 18px !important;
    padding: 22px 18px !important;
    overflow: visible !important;
    border-radius: 26px !important;
  }

  .training-topic-section-head {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 8px !important;
    margin: 0 0 18px !important;
  }

  .training-topic-section-head h3 {
    margin: 0 !important;
    font-size: clamp(30px, 8.4vw, 38px) !important;
    line-height: 1.08 !important;
    letter-spacing: -.04em !important;
  }

  .training-topic-section-head span {
    justify-self: start !important;
    color: rgba(17,17,17,.58) !important;
    font-size: 15px !important;
    line-height: 1.25 !important;
  }

  .training-topic-course-list,
  .training-topic-modal.is-dense-topic .training-topic-course-list {
    display: grid !important;
    grid-auto-rows: auto !important;
    gap: 14px !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
    padding: 0 !important;
  }

  .training-topic-course-card,
  .training-topic-modal.is-dense-topic .training-topic-course-card {
    display: grid !important;
    grid-template-columns: minmax(0,1fr) 54px !important;
    grid-template-areas:
      "code action"
      "copy copy"
      "duration duration"
      "mode mode" !important;
    gap: 12px !important;
    min-height: 0 !important;
    height: auto !important;
    margin: 0 !important;
    padding: 18px 16px !important;
    overflow: visible !important;
    border: 1px solid rgba(255,90,31,.16) !important;
    border-radius: 23px !important;
    background: rgba(255,255,255,.82) !important;
    box-shadow: 0 18px 46px rgba(17,17,17,.045), inset 0 1px 0 rgba(255,255,255,.92) !important;
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
  }

  .training-topic-course-code {
    grid-area: code !important;
    justify-self: start !important;
    align-self: center !important;
    display: inline-grid !important;
    place-items: center !important;
    width: auto !important;
    min-width: 58px !important;
    min-height: 44px !important;
    padding: 8px 14px !important;
    border-radius: 15px !important;
    font-size: 16px !important;
    font-weight: 780 !important;
  }

  .training-topic-course-copy {
    grid-area: copy !important;
    min-width: 0 !important;
    padding: 0 !important;
    border-left: 0 !important;
  }

  .training-topic-course-copy h4,
  .training-topic-modal.is-dense-topic .training-topic-course-copy h4 {
    display: block !important;
    margin: 0 !important;
    overflow: visible !important;
    color: #151515 !important;
    font-size: clamp(22px, 6.3vw, 29px) !important;
    line-height: 1.14 !important;
    letter-spacing: -.032em !important;
    white-space: normal !important;
    text-overflow: clip !important;
    text-wrap: pretty !important;
  }

  .training-topic-course-copy p,
  .training-topic-modal.is-dense-topic .training-topic-course-copy p {
    display: block !important;
    max-height: none !important;
    margin: 10px 0 0 !important;
    overflow: visible !important;
    color: rgba(17,17,17,.64) !important;
    font-size: 17px !important;
    line-height: 1.45 !important;
    text-align: left !important;
    white-space: normal !important;
    text-overflow: clip !important;
    -webkit-line-clamp: unset !important;
  }

  .training-topic-course-duration,
  .training-topic-course-mode {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 9px !important;
    width: 100% !important;
    min-height: 32px !important;
    margin: 0 !important;
    padding: 0 !important;
    color: rgba(17,17,17,.68) !important;
    font-size: 15px !important;
    font-weight: 690 !important;
    line-height: 1.25 !important;
    white-space: nowrap !important;
  }

  .training-topic-course-duration {
    grid-area: duration !important;
  }

  .training-topic-course-mode {
    grid-area: mode !important;
  }

  .training-topic-course-duration[hidden],
  .training-topic-course-mode[hidden] {
    display: none !important;
  }

  .training-topic-course-duration::before {
    flex: 0 0 24px !important;
    width: 24px !important;
    height: 24px !important;
    margin: 0 !important;
    border: 1.8px solid #ff5a1f !important;
    border-radius: 999px !important;
    background:
      linear-gradient(#ff5a1f,#ff5a1f) 50% 29%/1.6px 7px no-repeat,
      linear-gradient(42deg,transparent 45%,#ff5a1f 47% 58%,transparent 60%) 63% 62%/9px 9px no-repeat !important;
    box-shadow: inset 0 0 0 2px rgba(255,255,255,.72), 0 4px 10px rgba(255,90,31,.10) !important;
    content: "" !important;
  }

  .training-topic-course-mode::before {
    flex: 0 0 24px !important;
    display: block !important;
    width: 24px !important;
    height: 24px !important;
    margin: 0 !important;
    background:
      radial-gradient(circle at 50% 40%, #fff 0 2px, transparent 2.5px),
      radial-gradient(circle at 50% 38%, transparent 0 6px, #ff5a1f 6.5px 8px, transparent 8.5px),
      linear-gradient(135deg, transparent 0 52%, #ff5a1f 53% 57%, transparent 58%) 50% 74%/12px 12px no-repeat !important;
    clip-path: polygon(50% 100%, 16% 48%, 16% 26%, 28% 10%, 50% 2%, 72% 10%, 84% 26%, 84% 48%) !important;
    content: "" !important;
  }

  .training-topic-course-card > button {
    grid-area: action !important;
    justify-self: end !important;
    align-self: center !important;
    width: 54px !important;
    height: 54px !important;
    min-width: 54px !important;
    min-height: 54px !important;
    margin: 0 !important;
    border-radius: 999px !important;
    font-size: 27px !important;
  }

  .training-topic-standards-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }

  .training-topic-standard-card {
    min-height: 52px !important;
    padding: 11px 14px !important;
    display: grid !important;
    place-items: center !important;
    text-align: center !important;
    font-size: 15px !important;
  }

  /* Secondo livello corso: meno vuoto, più contenuto utile e nessun placeholder visivo. */
  .training-course-detail-hero,
  .training-course-detail-cards,
  .training-course-detail-cta {
    display: block !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 0 18px !important;
    padding: 24px 22px !important;
    overflow: visible !important;
    border-radius: 26px !important;
  }

  .training-course-detail-visual {
    display: none !important;
  }

  .training-course-detail-code {
    margin: 10px 0 14px !important;
    font-size: clamp(68px, 19vw, 96px) !important;
    line-height: .85 !important;
  }

  .training-course-detail-copy h2 {
    font-size: clamp(31px, 8.4vw, 40px) !important;
    line-height: 1.07 !important;
    letter-spacing: -.042em !important;
    text-wrap: balance !important;
  }

  .training-course-detail-copy > p {
    display: block !important;
    margin-top: 18px !important;
    overflow: visible !important;
    color: #4e4e4e !important;
    font-size: 18.5px !important;
    line-height: 1.56 !important;
    -webkit-line-clamp: unset !important;
  }

  .training-course-detail-chips {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    margin-top: 20px !important;
  }

  .training-course-detail-chips span {
    display: grid !important;
    grid-template-columns: 28px minmax(0,1fr) !important;
    gap: 12px !important;
    min-height: 56px !important;
    padding: 12px 15px !important;
    align-items: center !important;
    border-radius: 18px !important;
  }

  .training-course-detail-chips small,
  .training-course-detail-chips strong {
    grid-column: 2 !important;
    white-space: normal !important;
  }

  .training-course-detail-cards {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 14px !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
  }

  .training-course-detail-cards article {
    min-height: 0 !important;
    padding: 24px 22px !important;
    border-radius: 24px !important;
  }

  .training-course-detail-card-heading h3 {
    font-size: 27px !important;
    line-height: 1.12 !important;
  }

  .training-course-detail-cards li {
    color: #555 !important;
    font-size: 18px !important;
    line-height: 1.5 !important;
  }

  .training-course-detail-cards li:empty,
  .training-course-detail-cards li[data-empty="true"] {
    display: none !important;
  }

  .training-course-detail-cta {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 14px !important;
  }

  .training-course-detail-cta a {
    width: 100% !important;
    min-height: 58px !important;
    justify-content: center !important;
  }

  /* Blog/articoli: più magazine, meno blocchi inutili. */
  .blog-grid {
    grid-template-columns: 1fr !important;
    gap: 18px !important;
  }

  .article-card {
    overflow: hidden !important;
    background: linear-gradient(180deg, rgba(255,255,255,.86), rgba(255,255,255,.68)) !important;
  }

  .article-card img {
    aspect-ratio: 16 / 9 !important;
    width: 100% !important;
    object-fit: cover !important;
  }

  .newsletter-panel {
    display: none !important;
  }

  .single-content {
    padding: 34px var(--mobile-premium-gutter) !important;
    font-size: 18px !important;
    line-height: 1.72 !important;
  }

  .single-content p {
    margin-bottom: 1.25em !important;
  }

  .single-article-cta,
  .article-final-cta,
  .single-cta {
    position: static !important;
    display: grid !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    pointer-events: auto !important;
  }

  /* Cookie e ricerca: bottom sheet leggibili, mai ostili alla prima impressione. */
  .consent-banner {
    left: 12px !important;
    right: 12px !important;
    bottom: calc(12px + env(safe-area-inset-bottom)) !important;
    max-height: min(70dvh, 560px) !important;
    padding: 18px !important;
    border-radius: 24px !important;
    overflow-y: auto !important;
  }

  .consent-banner-actions {
    grid-template-columns: 1fr !important;
    gap: 8px !important;
  }

  .waves-search-overlay {
    padding: calc(82px + env(safe-area-inset-top)) 12px 18px !important;
  }

  .waves-search-modal {
    max-height: calc(100dvh - 104px) !important;
    overflow-y: auto !important;
    border-radius: 26px !important;
  }
}

@media (max-width: 390px) {
  .training-topic-intro {
    grid-template-columns: 56px minmax(0,1fr) !important;
    gap: 12px 14px !important;
  }

  .training-topic-icon {
    width: 56px !important;
    height: 56px !important;
  }

  .training-topic-intro h2,
  .training-topic-modal.is-dense-topic .training-topic-intro h2 {
    font-size: clamp(31px, 9vw, 38px) !important;
  }

  .training-topic-course-card,
  .training-topic-modal.is-dense-topic .training-topic-course-card {
    grid-template-columns: minmax(0,1fr) 50px !important;
    padding: 17px 14px !important;
  }

  .training-topic-course-copy h4,
  .training-topic-modal.is-dense-topic .training-topic-course-copy h4 {
    font-size: clamp(21px, 6.1vw, 26px) !important;
  }

  .training-topic-course-copy p,
  .training-topic-modal.is-dense-topic .training-topic-course-copy p {
    font-size: 16px !important;
  }

  .training-topic-footer,
  .training-course-detail-navigation {
    grid-template-columns: 1fr 1fr !important;
    gap: 8px !important;
  }

  .training-topic-dots,
  .training-course-detail-nav-dots {
    display: none !important;
  }
}

/* Harmonization 2026-07-14: token finali e correzioni anti-crop. */
:root {
  --color-brand: #059444;
  --color-brand-dark: #047f3a;
  --color-ink: #111111;
  --color-muted: #4f5652;
  --color-line: rgba(17,17,17,.10);
  --color-surface: #f7f9f8;
  --color-white: #ffffff;
  --font-body: Manrope, Inter, Helvetica, Arial, sans-serif;
  --space-0: 0;
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;
  --space-7: 48px;
  --space-8: 64px;
  --space-9: 96px;
  --radius-control: 14px;
  --radius-card: 20px;
  --radius-modal: 24px;
  --border-subtle: 1px solid var(--color-line);
  --shadow-1: 0 16px 42px rgba(17,17,17,.07);
  --shadow-2: 0 28px 80px rgba(17,17,17,.12);
  --focus-ring: 0 0 0 3px rgba(5,148,68,.34);
  --motion: 220ms cubic-bezier(.22,.61,.36,1);
  --type-h1: 64px;
  --type-h2: 44px;
  --type-h3: 24px;
  --type-body: 16px;
  --type-lead: 18px;
}

html { overflow-x: clip; }
body {
  font-family: var(--font-body);
  font-size: var(--type-body);
  line-height: 1.6;
  letter-spacing: 0;
  overflow-x: clip;
}
:where(h1,h2,h3,h4,h5,h6,p,li,a,button,input,select,textarea,label,summary) { letter-spacing: 0; }
:where(a,button,input,select,textarea,summary):focus-visible {
  outline: 0;
  box-shadow: var(--focus-ring);
}
:where(.btn,.company-button,.technical-button,.market-button,.training-hero-button,.training-custom-course-cta,.regulation-button,.method-cta,.standards-link,.header-cta) {
  min-height: 48px;
  border-radius: var(--radius-control);
}
:where(.service-card,.method-card,.technical-service-card,.training-category-card,.market-card,.article-card,.company-value-card) {
  border-radius: var(--radius-card);
  box-shadow: var(--shadow-1);
}
.section,.company-section,.technical-section,.sim-section,.market-section { padding-block: var(--space-8); }
.hero,.company-hero,.technical-hero,.training-hero,.sim-hero,.market-hero,.contact-hero,.blog-hero {
  min-height: auto !important;
}
.company-hero,.technical-hero,.training-hero,.sim-hero,.market-hero,.contact-hero,.blog-hero {
  padding-top: clamp(112px,12vw,150px) !important;
  padding-bottom: clamp(48px,7vw,88px) !important;
}
.technical-hero-grid,.training-hero-grid,.company-hero-grid,.sim-hero-grid {
  min-height: 0 !important;
}
.hero h1,.company-hero h1,.technical-hero h1,.training-hero h1,.sim-hero h1,.market-hero h1,.contact-hero h1,.blog-hero h1,.single-hero h1,.legal-hero-copy h1 {
  font-size: var(--type-h1) !important;
  line-height: 1.04 !important;
  letter-spacing: 0 !important;
}
.section-title,.company-section-head h2,.technical-section-head h2,.sim-section-head h2,.market-section-head h2,.legal-content h2 {
  font-size: var(--type-h2) !important;
  line-height: 1.1 !important;
  letter-spacing: 0 !important;
}
.hero-lead,.section-copy,.method-description,.single-excerpt,
.company-hero-copy>p:not(.company-eyebrow),
.technical-hero-copy>p:not(.technical-eyebrow),
.training-lead,.sim-hero-copy>p:not(.sim-eyebrow) {
  max-width: 68ch;
  font-size: var(--type-lead) !important;
  line-height: 1.62 !important;
  text-align: left !important;
  text-align-last: auto !important;
}
main p, main li { max-width: 70ch; }

/* Modali servizi: un solo scroll interno, header/footer stabili, nessun taglio. */
.technical-modal-layer { z-index: 180; padding: var(--space-5); }
.technical-modal {
  width: min(1180px, calc(100vw - 48px)) !important;
  height: min(760px, calc(100dvh - 48px)) !important;
  max-height: calc(100dvh - 48px) !important;
  border-radius: var(--radius-modal) !important;
}
.technical-modal-content {
  flex: 1 1 auto;
  display: block !important;
  min-height: 0;
  overflow-y: auto !important;
  padding: var(--space-5) !important;
}
.technical-modal-hero {
  display: grid !important;
  grid-template-columns: minmax(0,1fr) minmax(260px,.78fr) !important;
  min-height: 260px !important;
}
.technical-modal-intro { padding: var(--space-6) !important; }
.technical-modal-intro h2 { font-size: clamp(32px,3vw,44px) !important; line-height: 1.08 !important; }
.technical-modal-intro p { font-size: 15px !important; line-height: 1.6 !important; }
.technical-modal-visual { min-height: 240px !important; }
.technical-modal[data-service="analisi-e-valutazione-dei-rischi"] .technical-modal-visual img { transform: none !important; }
.technical-modal-details,.technical-modal-bottom { margin-top: var(--space-4); }
.technical-modal-footer {
  flex: 0 0 auto !important;
  min-height: 64px;
  padding-block: var(--space-2);
}

/* Modali formazione: CTA e navigazione separati dal contenuto scrollabile. */
.training-topic-modal,.training-course-detail-modal {
  border-radius: var(--radius-modal) !important;
}
.training-topic-content,.training-course-detail-content {
  overflow-y: auto !important;
  min-height: 0;
}
.training-topic-course-list {
  overflow-y: auto !important;
  overscroll-behavior: contain;
}
.training-topic-course-card>button,
.training-course-detail-close,
.training-topic-close,
.technical-modal-close {
  min-width: 44px !important;
  min-height: 44px !important;
}
.training-topic-close,.training-course-detail-close,.technical-modal-close {
  display: grid !important;
  place-items: center;
  width: 44px !important;
  height: 44px !important;
  border-radius: 999px !important;
  background: transparent !important;
  box-shadow: none !important;
}
.training-topic-close::before,.training-course-detail-close::before,.technical-modal-close::before {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: #ff5f57;
  box-shadow: inset 0 -1px 1px rgba(0,0,0,.12);
  content: "";
}
.training-topic-course-card.is-placeholder { display: none; }

/* Footer mobile accordion accessibile. */
.footer-column h2[role="button"] {
  cursor: pointer;
}

@media (max-width: 767px) {
  :root {
    --type-h1: 42px;
    --type-h2: 34px;
    --type-h3: 22px;
    --type-lead: 17px;
  }
  .container,.training-body .container { width: min(calc(100% - 40px), 680px); }
  .section,.company-section,.technical-section,.sim-section,.market-section { padding-block: 64px; }
  .method,.machine-regulation,.cta-section { padding-block: 64px !important; }
  .machine-regulation-inner { min-height: 0 !important; }
  .method-grid,.technical-section-head,.company-philosophy-card,.contact-layout {
    gap: var(--space-6) !important;
  }
  .technical-modal-layer { display: grid !important; padding: 0 !important; }
  .technical-modal {
    width: 100% !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    border-radius: 0 !important;
  }
  .technical-modal-content {
    padding: 18px 20px 24px !important;
  }
  .technical-modal-hero {
    display: flex !important;
    flex-direction: column !important;
    min-height: 0 !important;
    overflow: visible !important;
  }
  .technical-modal-intro {
    display: block !important;
    padding: 22px !important;
  }
  .technical-modal-icon { margin: 0 0 16px !important; }
  .technical-modal-intro h2 { padding: 0 !important; font-size: 34px !important; }
  .technical-modal-intro p { padding: 0 !important; margin-top: 16px !important; font-size: 16px !important; }
  .technical-modal-visual { min-height: 210px !important; margin: 0 !important; }
  .technical-modal-details { grid-template-columns: 1fr !important; padding: 0 20px !important; }
  .technical-modal-details article { padding: 20px 0 !important; }
  .technical-modal-bottom { grid-template-columns: 1fr !important; }
  .training-topic-layer,.training-course-detail-layer { padding: 0 !important; }
  .training-topic-modal,.training-course-detail-modal {
    width: 100% !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    border-radius: 0 !important;
  }
  .training-topic-content {
    display: flex !important;
    flex-direction: column !important;
    gap: var(--space-4) !important;
    padding: 16px 18px 18px !important;
    overflow-y: auto !important;
  }
  .training-topic-hero {
    display: grid !important;
    grid-template-columns: 1fr !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
  }
  .training-topic-intro {
    display: block !important;
    padding: 22px !important;
  }
  .training-topic-visual { min-height: 150px !important; }
  .training-topic-course-card {
    grid-template-columns: 56px minmax(0,1fr) 52px !important;
    min-height: 72px !important;
  }
  .training-topic-course-duration,.training-topic-course-mode { display: none !important; }
  .site-footer { padding-top: 44px; }
  .footer-grid {
    display: block !important;
    padding-bottom: 28px;
  }
  .footer-brand { margin-bottom: 28px; }
  .footer-column {
    display: block !important;
    border-top: var(--border-subtle);
  }
  .footer-column h2[role="button"] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 54px;
    margin: 0 !important;
  }
  .footer-column h2[role="button"]::after {
    content: "+";
    font-size: 20px;
    font-weight: 600;
  }
  .footer-column.is-open h2[role="button"]::after { content: "−"; }
  .footer-column a,.footer-column p {
    display: none;
    margin-bottom: 10px;
  }
  .footer-column.is-open a,.footer-column.is-open p { display: block; }
  .footer-bottom nav {
    flex-wrap: wrap;
    gap: 12px 18px;
  }
}

@media (min-width: 768px) and (max-height: 760px) {
  .technical-hero,.training-hero,.company-hero,.sim-hero {
    padding-top: 104px !important;
    padding-bottom: 44px !important;
  }
  .technical-modal {
    height: calc(100dvh - 32px) !important;
    max-height: calc(100dvh - 32px) !important;
  }
  .technical-modal-hero { min-height: 220px !important; }
  .technical-modal-details li { font-size: 12px !important; }
}


@media (max-width: 374px) {
  :root { --mobile-gutter: 16px; }
  .container,.training-body .container { width: calc(100% - 32px); }
  .hero h1,.company-hero h1,.technical-hero h1,.training-hero h1,.sim-hero h1,.market-hero h1,.contact-hero h1,.blog-hero h1 { font-size: 38px!important; }
  .training-facts { grid-template-columns: 1fr; }
  .technical-sector-grid,.market-standard-grid,.standards-inner { grid-template-columns: 1fr!important; }
  .hero>.standards .standards-link { grid-column: 1; }
  .footer-grid { grid-template-columns: 1fr; }
  .footer-column,.footer-brand,.footer-contact { grid-column: 1; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}

@media (max-width: 767px) {
  body.menu-open::before {
    position: fixed;
    z-index: 48;
    inset: 69px 0 0;
    background: rgba(248,250,249,.98);
    content: "";
  }
  .main-nav {
    z-index: 49;
    background: #fff;
    box-shadow: 0 22px 55px rgba(17,17,17,.10);
  }
  .main-nav.is-open {
    opacity: 1;
    transform: none;
    visibility: visible;
  }
  .method-sim-page .main-nav,
  .site-header.is-dark .main-nav {
    background: #0f1012;
  }
  .training-body .main-nav {
    background: #e04612;
  }
  .main-nav a:focus-visible,
  .submenu-toggle:focus-visible {
    outline: 0;
    box-shadow: inset 0 0 0 2px rgba(5,148,68,.34);
  }
  .site-header.is-dark .main-nav a:focus-visible,
  .method-sim-page .main-nav a:focus-visible,
  .training-body .main-nav a:focus-visible,
  .training-body .submenu-toggle:focus-visible {
    box-shadow: inset 0 0 0 2px rgba(255,255,255,.54);
  }
  .waves-search-suggestions button { min-height: 44px; }

  .technical-timeline,
  .training-category-grid,
  .blog-filters {
    overflow-x: auto;
    overflow-y: hidden;
    max-width: none;
    padding-right: 56px;
    scroll-padding-right: 56px;
    -webkit-mask-image: linear-gradient(90deg,transparent 0,#000 18px,#000 calc(100% - 54px),transparent 100%);
    mask-image: linear-gradient(90deg,transparent 0,#000 18px,#000 calc(100% - 54px),transparent 100%);
  }
  .technical-timeline { padding-left: 20px; }
  .training-category-grid { padding-bottom: 4px; }
  .blog-filters {
    flex-wrap: nowrap;
    padding-left: 20px;
    padding-bottom: 4px;
  }

  .legal-policy-page .legal-table-scroll {
    margin-inline: 0;
    padding-inline: 0;
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }
  .legal-policy-page .legal-content table,
  .legal-policy-page .legal-content thead,
  .legal-policy-page .legal-content tbody,
  .legal-policy-page .legal-content tr,
  .legal-policy-page .legal-content th,
  .legal-policy-page .legal-content td {
    display: block;
    width: 100%;
    min-width: 0;
  }
  .legal-policy-page .legal-content table {
    border-collapse: separate;
    border-spacing: 0;
    font-size: 14px;
  }
  .legal-policy-page .legal-content thead { display: none; }
  .legal-policy-page .legal-content tbody {
    display: grid;
    gap: 12px;
  }
  .legal-policy-page .legal-content tr {
    overflow: hidden;
    border: 1px solid rgba(5,148,68,.11);
    border-radius: 16px;
    background: rgba(255,255,255,.78);
    box-shadow: 0 14px 34px rgba(17,17,17,.045);
  }
  .legal-policy-page .legal-content td,
  .legal-policy-page .legal-content th {
    border-right: 0;
    border-bottom: 1px solid rgba(17,17,17,.06);
    padding: 12px 14px;
  }
  .legal-policy-page .legal-content td {
    display: grid;
    grid-template-columns: minmax(96px,34%) minmax(0,1fr);
    gap: 12px;
    align-items: start;
    font-size: 13px;
    line-height: 1.5;
  }
  .legal-policy-page .legal-content tr > *:last-child { border-bottom: 0; }
  .legal-policy-page .legal-content td::before {
    color: #059444;
    content: attr(data-label);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .055em;
    line-height: 1.35;
    text-transform: uppercase;
  }
  .legal-policy-page .legal-content td:not([data-label]) {
    display: block;
  }
  .legal-policy-page .legal-content td:not([data-label])::before {
    content: none;
  }

  .consent-banner {
    right: 10px;
    bottom: calc(10px + env(safe-area-inset-bottom));
    left: 10px;
    max-height: min(58dvh,460px);
    padding: 14px;
    border-radius: 18px;
  }
  .consent-banner-copy { gap: 6px; }
  .consent-badge { display: none; }
  .consent-banner h2 { font-size: 17px; line-height: 1.18; }
  .consent-banner p {
    display: -webkit-box;
    margin-top: 4px;
    overflow: hidden;
    font-size: 12px;
    line-height: 1.42;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
  }
  .consent-links { gap: 6px 12px; margin-top: 5px; font-size: 12px; }
  .consent-banner-actions {
    grid-template-columns: 1fr 1fr;
    gap: 7px;
    margin-top: 12px;
  }
  .consent-banner-actions .consent-link-button {
    grid-column: 1 / -1;
    min-height: 34px;
    padding: 0;
    font-size: 12px;
  }
  .consent-banner-actions button,
  .consent-banner-actions a { min-height: 44px; }
}

/* Final typography precedence: this block must remain last in the cascade. */
:root {
  --type-body: 16px;
  --type-body-leading: 1.6;
  --type-small: 14px;
  --type-small-leading: 1.5;
  --type-label: 11px;
  --type-label-leading: 1.35;
  --type-h1: 64px;
  --type-h2: 44px;
  --type-h3: 24px;
}
/* Consolidated heading guard for page-specific CSS with higher specificity. */
body main h1 { font-size: var(--type-h1) !important; font-weight: 700 !important; line-height: 1.04 !important; letter-spacing: 0 !important; }
body main h2 { font-size: var(--type-h2) !important; font-weight: 700 !important; line-height: 1.08 !important; letter-spacing: 0 !important; }
body main h3 { font-size: var(--type-h3) !important; font-weight: 700 !important; line-height: 1.18 !important; letter-spacing: 0 !important; }
body main .technical-step h3 { font-size: 14px !important; line-height: 1.2 !important; }
body main .technical-sector-card h3 { font-size: 15px !important; line-height: 1.2 !important; }
body main .legal-content h3, body main .cookie-setting-card h3 { font-size: 19px !important; line-height: 1.3 !important; }
body main .contact-form-panel input, body main .contact-form-panel select,
body main .contact-form-panel textarea, body main .newsletter-panel input,
body main .waves-search-input-row input { font-size: var(--type-body) !important; line-height: 1.45 !important; letter-spacing: 0 !important; }
body { font-size: var(--type-body); line-height: var(--type-body-leading); letter-spacing: 0; }
body p, body li, body dd, body dt, body label, body input, body select, body textarea { letter-spacing: 0; }
h1, h2, h3, h4, h5, h6 { letter-spacing: 0; text-wrap: balance; }
h1 { font-size: 44px; font-weight: 700; line-height: 1.04; }
h2 { font-size: var(--type-h2); font-weight: 700; line-height: 1.08; }
h3 { font-size: var(--type-h3); font-weight: 700; line-height: 1.18; }
body.home .hero h1, .hero h1, .company-hero h1, .technical-hero h1, .training-hero h1, .sim-hero h1,
.market-hero h1, .contact-hero h1, .blog-hero h1, .single-hero h1,
.legal-hero-copy h1, .cookie-settings-hero h1 {
  font-size: var(--type-h1) !important;
  font-weight: 700 !important;
  line-height: 1.04 !important;
  letter-spacing: 0 !important;
}
.section-title, .company-section-head h2, .technical-section-head h2,
.method h2, .cta-panel h2, .service-drawer h2, .technical-modal h2,
.market-section-head h2, .market-process-panel h2, .market-final-panel h2,
.sim-section-head h2, .sim-copy-block h2, .cookie-settings-section-head h2,
.legal-content h2 {
  font-size: var(--type-h2) !important;
  font-weight: 700 !important;
  line-height: 1.08 !important;
  letter-spacing: 0 !important;
}
.eyebrow, .company-eyebrow, .technical-eyebrow, .market-eyebrow,
.blog-kicker, .sim-eyebrow, .hotspot-eyebrow, .standards-label span,
.footer-column h2, .article-category, .contact-form-panel label > span {
  font-size: var(--type-label);
  font-weight: 700;
  line-height: var(--type-label-leading);
  letter-spacing: .08em;
}
.hero-lead, .section-copy, .company-hero-copy > p:not(.company-eyebrow),
.technical-hero-copy > p:not(.technical-eyebrow), .market-hero-copy > p:not(.market-eyebrow),
.contact-copy > p:not(.market-eyebrow), .blog-hero-copy > p:not(.blog-kicker),
.sim-hero-copy > p:not(.sim-eyebrow), .method-description, .single-excerpt {
  font-size: 18px;
  line-height: 1.6;
  letter-spacing: 0;
}
.method-card-copy h3, .service-card h3, .technical-service-card h3,
.market-card h3, .market-process-list h3, .contact-path-grid h3,
.company-value-card h3, .company-future-card h3, .article-body h3,
.newsletter-panel h2 { font-size: var(--type-h3); font-weight: 700; line-height: 1.18; letter-spacing: 0; }
.method-card-copy p, .service-card p, .technical-service-card p,
.market-card p, .market-process-list p, .contact-path-grid p,
.company-value-card p, .company-future-card p, .article-body p,
.newsletter-panel p, .footer-column a, .footer-column p {
  font-size: var(--type-small);
  line-height: var(--type-small-leading);
  letter-spacing: 0;
}
.main-nav, .main-nav a, .btn, .company-button, .technical-button,
.market-button, .training-hero-button, .training-custom-course-cta,
.regulation-button, .method-cta, .standards-link, .footer-bottom,
.service-drawer-cta, .technical-modal, .technical-modal button,
.technical-modal a { font-size: var(--type-small); font-weight: 700; line-height: 1.3; letter-spacing: 0; }
input, select, textarea { font-size: var(--type-body); line-height: 1.45; letter-spacing: 0; }

@media (max-width: 767px) {
  :root { --type-h1: 42px; --type-h2: 34px; --type-h3: 22px; }
  h1 { font-size: 34px; }
  h2 { font-size: var(--type-h2); }
  h3 { font-size: var(--type-h3); }
  .hero h1, .company-hero h1, .technical-hero h1, .training-hero h1, .sim-hero h1,
  .market-hero h1, .contact-hero h1, .blog-hero h1, .single-hero h1,
  .legal-hero-copy h1, .cookie-settings-hero h1 { font-size: var(--type-h1) !important; line-height: 1.04 !important; }
  .section-title, .company-section-head h2, .technical-section-head h2,
  .market-section-head h2, .market-process-panel h2, .market-final-panel h2,
  .sim-section-head h2, .sim-copy-block h2, .cookie-settings-section-head h2,
  .legal-content h2 { font-size: var(--type-h2) !important; line-height: 1.08 !important; }
  .hero-lead, .section-copy, .company-hero-copy > p:not(.company-eyebrow),
  .technical-hero-copy > p:not(.technical-eyebrow), .market-hero-copy > p:not(.market-eyebrow),
  .contact-copy > p:not(.market-eyebrow), .blog-hero-copy > p:not(.blog-kicker),
  .sim-hero-copy > p:not(.sim-eyebrow), .method-description, .single-excerpt { font-size: 17px; line-height: 1.6; }
  .method-card-copy h3, .service-card h3, .technical-service-card h3,
  .market-card h3, .market-process-list h3, .contact-path-grid h3,
  .company-value-card h3, .company-future-card h3, .article-body h3,
  .newsletter-panel h2 { font-size: var(--type-h3); line-height: 1.18; }
  .method-card-copy p, .service-card p, .technical-service-card p,
  .market-card p, .market-process-list p, .contact-path-grid p,
  .company-value-card p, .company-future-card p, .article-body p,
  .newsletter-panel p, .footer-column a, .footer-column p { font-size: 15px; line-height: 1.55; }
}

/* Cookie system is intentionally custom-only; Complianz can still emit markup. */
#cmplz-cookiebanner-container,
.cmplz-cookiebanner,
.cmplz-cookiebanner-container {
  display: none !important;
}

/**
 * Rifiniture desktop finali.
 * Questo file viene caricato per ultimo dal tema: le regole desktop qui sotto
 * servono a prevalere sui CSS specifici pagina senza usare refactor invasivi.
 */
@media (min-width: 1101px) {
  .site-header { padding:10px 0; border-bottom-color:rgba(17,17,17,.055); background:rgba(255,255,255,.86); }
  .header-inner { min-height:82px; gap:clamp(18px,2vw,30px); }
  .brand-logo { width:108px; }
  .brand-logo img { width:98px; height:auto; max-height:64px; object-fit:contain; }
  .main-nav { gap:clamp(22px,1.9vw,34px); }
  .main-nav a,.nav-dropdown-trigger>a { font-size:16px; font-weight:650; line-height:1.2; letter-spacing:-.012em; }
  .submenu-toggle { display:inline-grid; place-items:center; width:14px; height:14px; color:transparent; }
  .submenu-toggle::before,.submenu-toggle span { display:block; width:4px; height:4px; border-radius:999px; background:rgba(17,17,17,.28); content:""; transition:background-color .24s ease-out,transform .24s ease-out; }
  .nav-dropdown:hover .submenu-toggle::before,.nav-dropdown:hover .submenu-toggle span,.nav-dropdown:focus-within .submenu-toggle::before,.nav-dropdown:focus-within .submenu-toggle span { background:var(--waves-green); transform:scale(1.15); }
  .nav-dropdown[data-submenu-label="Normative"] .submenu-toggle { display:none; }
  .nav-submenu { min-width:270px; padding:12px; border-color:rgba(17,17,17,.07); border-radius:20px; background:rgba(255,255,255,.90); box-shadow:0 28px 80px rgba(17,17,17,.12),inset 0 1px 0 rgba(255,255,255,.92); backdrop-filter:blur(24px) saturate(160%); -webkit-backdrop-filter:blur(24px) saturate(160%); }
  .nav-submenu a { min-height:48px; padding:10px 12px; border-radius:14px; font-size:14px; line-height:1.25; }
  .search-trigger { width:52px; height:52px; border-color:rgba(17,17,17,.075); border-radius:18px; background:rgba(255,255,255,.72); box-shadow:0 16px 40px rgba(17,17,17,.055),inset 0 1px 0 rgba(255,255,255,.92); }
  .search-trigger svg { width:23px; height:23px; stroke-width:1.8; }
  .language-switch-desktop .language-switch,.language-switch { min-height:52px; padding:5px; border-color:rgba(17,17,17,.07); border-radius:18px; background:rgba(255,255,255,.70); box-shadow:0 16px 40px rgba(17,17,17,.045),inset 0 1px 0 rgba(255,255,255,.94); }
  .language-switch a,.language-switch button { min-width:48px; height:42px; border-radius:14px; font-size:14px; font-weight:750; }
  .header-cta { min-height:56px; padding:0 28px; border-radius:18px; font-size:15.5px; font-weight:720; letter-spacing:-.01em; }

  .hero { padding-top:86px; }
  .hero-grid { grid-template-columns:minmax(0,2fr) minmax(0,3fr); min-height:clamp(500px,calc(100svh - 220px),640px); }
  .hero-copy { max-width:780px; }
  .hero h1 { max-width:780px; font-size:clamp(78px,6.7vw,112px); line-height:.915; letter-spacing:-.068em; font-weight:800; }
  .hero-lead { max-width:560px; margin:32px 0 34px; color:#3e4541; font-size:21px; line-height:1.58; letter-spacing:-.012em; text-align:left; text-align-last:auto; word-spacing:normal; }
  .hero-actions .btn { min-height:58px; padding-inline:30px; font-size:16px; font-weight:720; }
  .hero>.standards { margin-top:34px; }
  .hero>.standards .standards-inner { min-height:116px; padding:26px 0 10px; background:rgba(255,255,255,.26); }
  .hero>.standards .standard img { height:36px; max-width:72px; opacity:.92; }
  .hero>.standards .standards-link { min-height:54px; padding-inline:22px; font-size:12px; font-weight:760; }

  .machine-regulation { padding:96px 0; }
  .machine-regulation-inner { grid-template-columns:minmax(0,.42fr) minmax(0,.58fr); gap:clamp(56px,5vw,78px); align-items:center; min-height:clamp(640px,86svh,780px); max-height:none; padding-top:0; border-radius:30px; }
  .machine-regulation-copy { max-width:620px; padding:0 0 0 clamp(42px,4.5vw,72px); }
  .machine-regulation h2 { max-width:620px; font-size:clamp(52px,4.55vw,68px); line-height:.99; letter-spacing:-.055em; font-weight:780; }
  .machine-regulation-text { max-width:580px; margin-top:34px; color:#3c423f; font-size:20px; line-height:1.58; }
  .machine-regulation-strong { max-width:560px; margin-top:24px; color:rgba(17,17,17,.82); font-size:18px; line-height:1.52; font-weight:650; }
  .machine-regulation-visual img { width:106%; max-width:none; max-height:min(62vh,650px); object-fit:contain; object-position:center; }

  .method { min-height:100svh; padding-block:96px; }
  .method-grid { grid-template-columns:minmax(0,.42fr) minmax(0,.58fr); gap:clamp(64px,5.5vw,86px); align-items:center; }
  .method h2 { max-width:650px; font-size:clamp(56px,4.8vw,72px); line-height:.965; letter-spacing:-.058em; font-weight:800; }
  .method-description { max-width:620px; color:rgba(255,255,255,.70); font-size:21px; line-height:1.56; }
  .method-card { min-height:0; padding:32px 36px; border-radius:24px; background:rgba(255,255,255,.035); box-shadow:0 20px 58px rgba(0,0,0,.14),inset 0 1px 0 rgba(255,255,255,.035); }
  .method-card-copy h3 { font-size:30px; line-height:1.08; font-weight:720; }
  .method-card-copy p { color:rgba(255,255,255,.66); font-size:18px; line-height:1.5; }

  #servizi .service-card { min-height:295px; padding:42px 46px; border:1px solid rgba(17,17,17,.05); border-radius:26px; background:rgba(255,255,255,.78); box-shadow:0 30px 70px rgba(0,0,0,.05),inset 0 1px 0 rgba(255,255,255,.90); backdrop-filter:blur(16px) saturate(140%); -webkit-backdrop-filter:blur(16px) saturate(140%); }
  #servizi .service-card::before { display:block; left:46px; width:44px; height:2px; opacity:.86; transition:width 400ms cubic-bezier(.22,.61,.36,1),opacity 400ms ease; }
  #servizi .service-card:hover { border-color:rgba(5,148,68,.16); box-shadow:0 36px 92px rgba(17,17,17,.095),0 16px 44px rgba(5,148,68,.055); transform:translateY(-8px) scale(1.012); }
  #servizi .service-card:hover::before { width:calc(100% - 92px); }
  #servizi .service-card h3 { margin-top:58px; color:#111; font-size:clamp(28px,2.2vw,34px); font-weight:680; letter-spacing:-.035em; }
  #servizi .service-card p { max-width:36ch; color:rgba(17,17,17,.58); font-size:17px; line-height:1.58; }

  .company-hero-copy>p:not(.company-eyebrow) { max-width:560px; color:rgba(17,17,17,.66); font-size:19px; line-height:1.62; text-align:left; text-align-last:auto; }
  .company-philosophy-copy p,.company-why-intro p,.company-final-card>div>p { color:rgba(17,17,17,.64); font-size:17px; line-height:1.62; }
  .company-value-card p,.company-reasons p,.company-future-overlay p { font-size:14px; line-height:1.58; }

  .technical-hero h1 { font-size:clamp(64px,5vw,82px); font-weight:760; }
  .technical-hero-copy>p:not(.technical-eyebrow) { max-width:590px; font-size:19px; line-height:1.62; }
  .technical-services-stage { padding:102px 0 28px; }
  .technical-services-stage .technical-service-card { padding:clamp(20px,1.9vw,30px); border-radius:26px; }
  .technical-services-stage .technical-card-icon { width:58px; height:58px; }
  .technical-services-stage .technical-service-card h3 { margin-top:22px; font-size:clamp(20px,1.65vw,26px); font-weight:720; }
  .technical-services-stage .technical-service-card p { font-size:clamp(13px,.96vw,15.5px); line-height:1.5; }

  .technical-modal-close,.training-topic-close,.training-course-detail-close { width:14px; height:14px; align-self:start; justify-self:start; margin:13px 0 0; border:1px solid rgba(120,0,0,.22); background:#ff5f57; box-shadow:inset 0 -1px 1px rgba(0,0,0,.12),0 0 0 1px rgba(255,255,255,.35); }
  .technical-modal-header,.training-topic-header,.training-course-detail-header { min-height:48px; padding:0 24px; }

  .training-hero { min-height:100svh !important; padding:118px 0 58px !important; }
  .training-hero-grid { min-height:clamp(500px,calc(100svh - 188px),650px); }
  .training-hero h1 { max-width:680px; font-size:clamp(64px,5.15vw,84px); }
  .training-lead { max-width:610px; font-size:18px; line-height:1.66; }
  .training-facts article { min-height:144px; padding:24px 26px 20px; }
  .training-category-card { min-height:250px; padding:30px 26px 24px; }
  .training-topic-intro p,.training-topic-modal.is-dense-topic .training-topic-intro p,.training-course-detail-copy>p { color:#4e4e4e; font-size:clamp(18px,1.15vw,22px); line-height:1.58; }
  .training-topic-course-copy h4 { font-size:clamp(18px,1.15vw,22px); line-height:1.22; }
  .training-topic-course-description { font-size:clamp(16px,.98vw,18px); line-height:1.46; }
  .training-course-detail-cards li { font-size:clamp(16px,.98vw,19px); line-height:1.5; }

  .blog-hero { padding-top:140px; }
  .blog-hero h1 { font-size:clamp(62px,5.3vw,86px); font-weight:780; }
  .blog-hero-copy>p:not(.blog-kicker) { font-size:20px; line-height:1.62; }
  .article-card { border-color:rgba(255,255,255,.90); border-radius:26px; background:linear-gradient(155deg,rgba(255,255,255,.86),rgba(255,255,255,.62)); box-shadow:0 26px 70px rgba(17,17,17,.06),inset 0 1px 0 rgba(255,255,255,.96); }
  .single-content { max-width:1180px; padding:72px clamp(56px,6vw,104px); font-size:20px; line-height:1.8; }

  .footer-brand>p,.footer-column p,.footer-column a { font-size:12.5px; line-height:1.7; }
  .footer-social a { width:34px; height:34px; border-color:rgba(5,148,68,.28); color:var(--waves-green); }
}

@media (min-width:1101px) and (max-height:760px) {
  .hero { padding-top:74px; }
  .hero-grid { min-height:clamp(390px,calc(100svh - 190px),520px); }
  .hero h1 { font-size:clamp(56px,5vw,74px); letter-spacing:-.06em; }
  .hero-lead { margin:22px 0 26px; font-size:18px; line-height:1.5; }
  .hero>.standards { margin-top:22px; }
  .hero>.standards .standards-inner { min-height:98px; padding:20px 0 8px; }
  .machine-regulation { padding:72px 0; }
  .machine-regulation-inner { min-height:600px; }
  .machine-regulation h2 { font-size:clamp(46px,4vw,58px); }
  .machine-regulation-text { margin-top:26px; font-size:18px; }
  .training-topic-modal,.training-course-detail-modal { max-height:calc(100svh - 28px); }
}

/**
 * Rifinitura mobile premium.
 * Blocco finale intenzionalmente in fondo al file: corregge gli strati storici
 * senza refactor invasivi e rende telefono/tablet piccoli più leggibili.
 */
@media (max-width: 767px) {
  html, body { max-width: 100%; overflow-x: clip; }
  body { --mobile-gutter: 20px; --mobile-card-radius: 22px; --mobile-soft-line: rgba(17,17,17,.075); }

  /* Header: touch target chiari, hamburger stabile e drawer più compatto. */
  .site-header {
    min-height: 68px !important;
    padding: 8px 0 !important;
    background: rgba(255,255,255,.88);
    border-bottom: 1px solid rgba(17,17,17,.065);
    backdrop-filter: blur(18px) saturate(160%);
    -webkit-backdrop-filter: blur(18px) saturate(160%);
  }
  .header-inner {
    display: grid !important;
    grid-template-columns: minmax(0,1fr) auto auto !important;
    gap: 10px !important;
    align-items: center !important;
    min-height: 52px !important;
    padding-inline: 18px !important;
  }
  .brand-logo { width: 74px !important; }
  .brand-logo img { width: 68px !important; height: auto !important; max-height: 50px !important; object-fit: contain !important; }
  .search-trigger,
  .menu-toggle {
    width: 48px !important;
    height: 48px !important;
    border-radius: 17px !important;
  }
  .search-trigger {
    border: 1px solid rgba(17,17,17,.075) !important;
    background: rgba(255,255,255,.72) !important;
    box-shadow: 0 12px 34px rgba(17,17,17,.055), inset 0 1px 0 rgba(255,255,255,.9) !important;
  }
  .menu-toggle {
    display: grid !important;
    place-content: center !important;
    padding: 0 !important;
    background: transparent !important;
  }
  .menu-toggle span,
  .menu-toggle[aria-expanded="true"] span {
    width: 25px !important;
    height: 2px !important;
    margin: 4px auto !important;
    opacity: 1 !important;
    transform: none !important;
    background: var(--waves-ink) !important;
  }
  .training-body .menu-toggle span,
  .training-body .menu-toggle[aria-expanded="true"] span,
  .training-contact-body .menu-toggle span,
  .training-contact-body .menu-toggle[aria-expanded="true"] span {
    background: #fff !important;
  }
  .training-body .site-header,
  .training-contact-body .site-header {
    background: rgba(255,90,31,.94) !important;
    border-bottom-color: rgba(255,255,255,.14) !important;
  }
  .training-body .search-trigger,
  .training-contact-body .search-trigger {
    color: #fff !important;
    border-color: rgba(255,255,255,.32) !important;
    background: rgba(255,255,255,.10) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.26) !important;
  }
  .main-nav {
    inset: 76px 12px auto !important;
    width: auto !important;
    max-height: min(78dvh, 640px) !important;
    padding: 14px !important;
    border: 1px solid rgba(17,17,17,.08) !important;
    border-radius: 24px !important;
    background: rgba(255,255,255,.94) !important;
    box-shadow: 0 28px 80px rgba(17,17,17,.14), inset 0 1px 0 rgba(255,255,255,.94) !important;
    overflow-y: auto !important;
    backdrop-filter: blur(24px) saturate(170%);
    -webkit-backdrop-filter: blur(24px) saturate(170%);
  }
  .main-nav a {
    min-height: 48px !important;
    padding: 13px 14px !important;
    border: 0 !important;
    border-radius: 15px !important;
    font-size: 16px !important;
    font-weight: 720 !important;
    letter-spacing: -.012em !important;
  }
  .main-nav a:hover,
  .main-nav a:focus-visible,
  .main-nav a.is-current { background: rgba(5,148,68,.07) !important; color: var(--waves-green) !important; }
  .nav-dropdown-trigger { display: grid !important; grid-template-columns: minmax(0,1fr) 48px !important; align-items: center !important; gap: 4px !important; }
  .submenu-toggle {
    width: 48px !important;
    height: 48px !important;
    border-radius: 15px !important;
    color: var(--waves-ink) !important;
  }
  .submenu-toggle::before { font-size: 22px !important; font-weight: 500 !important; }
  .nav-submenu {
    margin: 4px 0 10px !important;
    padding: 6px !important;
    border: 1px solid rgba(5,148,68,.08) !important;
    border-radius: 18px !important;
    background: rgba(5,148,68,.035) !important;
  }
  .nav-submenu a {
    min-height: 44px !important;
    padding: 11px 12px !important;
    font-size: 14px !important;
  }
  .language-switch-mobile { padding: 12px 4px 4px !important; }
  .main-nav .language-switch { width: 100% !important; justify-content: center !important; }

  /* Hero mobile: priorità a lettura e CTA; immagini sotto controllo. */
  .hero,
  .company-hero,
  .technical-hero,
  .training-hero,
  .blog-hero,
  .sim-hero,
  .market-hero,
  .contact-hero {
    padding-top: 96px !important;
    padding-bottom: 64px !important;
  }
  .hero-grid,
  .company-hero-grid,
  .technical-hero-grid,
  .training-hero-grid,
  .blog-hero-grid,
  .sim-hero-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    min-height: 0 !important;
    gap: 28px !important;
  }
  body.home .hero { min-height: auto !important; padding-bottom: 46px !important; }
  body.home .hero-visual { display: none !important; }
  .hero h1,
  .company-hero h1,
  .technical-hero h1,
  .training-hero h1,
  .blog-hero h1,
  .sim-hero h1,
  .market-hero h1,
  .contact-hero h1 {
    max-width: 100% !important;
    font-size: clamp(38px, 11vw, 46px) !important;
    line-height: 1.02 !important;
    letter-spacing: -.045em !important;
    text-wrap: balance !important;
  }
  .hero-lead,
  .company-hero-copy > p:not(.company-eyebrow),
  .technical-hero-copy > p:not(.technical-eyebrow),
  .training-lead,
  .blog-hero-copy > p:not(.blog-kicker),
  .sim-hero-copy > p:not(.sim-eyebrow),
  .contact-copy > p:not(.market-eyebrow) {
    max-width: 100% !important;
    font-size: 17px !important;
    line-height: 1.62 !important;
    text-align: left !important;
    text-align-last: auto !important;
    letter-spacing: -.006em !important;
  }
  .hero-actions,
  .company-actions,
  .technical-actions,
  .training-actions,
  .machine-regulation-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }
  .hero-actions .btn,
  .company-actions > *,
  .technical-actions > *,
  .training-actions > *,
  .machine-regulation-actions > *,
  .method-cta {
    width: 100% !important;
    min-height: 56px !important;
    justify-content: center !important;
  }
  .home .standards .standard:nth-of-type(4) { display: none !important; }
  .standards-inner {
    grid-template-columns: repeat(2, minmax(0,1fr)) !important;
    gap: 16px 12px !important;
    padding: 22px 0 !important;
  }
  .standards-link { grid-column: 1 / -1 !important; width: 100% !important; min-height: 54px !important; }

  /* Sezioni principali: card più leggibili, niente hover/animazioni decorative. */
  .section,
  .company-section,
  .technical-section,
  .sim-section,
  .market-section,
  .machine-regulation {
    padding-block: 68px !important;
  }
  .service-card,
  .method-card,
  .company-value-card,
  .company-glass,
  .technical-service-card,
  .technical-step,
  .training-category-card,
  .market-card,
  .article-card,
  .contact-form-panel,
  .contact-info-card {
    border-radius: var(--mobile-card-radius) !important;
    transform: none !important;
    animation: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }
  .service-card,
  .technical-service-card,
  .company-value-card,
  .article-card {
    padding: 24px 22px !important;
    box-shadow: 0 18px 54px rgba(17,17,17,.055), inset 0 1px 0 rgba(255,255,255,.86) !important;
  }
  .service-card h3,
  .technical-service-card h3,
  .company-value-card h3,
  .article-card h2,
  .article-card h3 {
    font-size: 22px !important;
    line-height: 1.16 !important;
  }
  .service-card p,
  .technical-service-card p,
  .company-value-card p,
  .article-card p {
    font-size: 15.5px !important;
    line-height: 1.58 !important;
  }
  .machine-regulation-inner,
  .method-grid,
  .technical-section-head,
  .company-philosophy-card,
  .company-why-card,
  .company-final-card,
  .contact-layout {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 28px !important;
  }
  .machine-regulation h2,
  .method h2,
  .section-title,
  .company-section-head h2,
  .technical-section-head h2,
  .sim-section-head h2 {
    font-size: clamp(32px, 9vw, 38px) !important;
    line-height: 1.06 !important;
  }

  /* Pagina formazione: hero meno invadente e card aree più facili da scorrere. */
  .training-hero { min-height: auto !important; }
  .training-hero-visual { margin-top: 4px !important; }
  .training-hero-visual img,
  .blog-hero-art img,
  .technical-hero-visual img,
  .company-hero-image {
    width: 100% !important;
    max-height: 320px !important;
    object-fit: cover !important;
    object-position: center !important;
    border-radius: 24px !important;
  }
  .training-facts {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }
  .training-facts article { min-height: 0 !important; padding: 18px 20px !important; }
  .training-category-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 14px !important;
    margin-inline: 0 !important;
    padding-inline: 0 !important;
    overflow: visible !important;
  }
  .training-category-card {
    min-height: 0 !important;
    padding: 22px 20px !important;
  }

  /* Modal tematiche corsi: drawer verticale stabile, senza sovrapposizioni. */
  .training-topic-layer,
  .training-course-detail-layer,
  .technical-modal-layer {
    display: grid !important;
    place-items: stretch !important;
    padding: 0 !important;
  }
  .training-topic-modal,
  .training-course-detail-modal,
  .technical-modal {
    width: 100% !important;
    height: 100dvh !important;
    max-width: none !important;
    max-height: none !important;
    margin: 0 !important;
    border-radius: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
  }
  .training-topic-header,
  .training-course-detail-header,
  .technical-modal-header {
    flex: 0 0 64px !important;
    min-height: 64px !important;
    padding: 0 18px !important;
    align-items: center !important;
  }
  .training-topic-close,
  .training-course-detail-close,
  .technical-modal-close {
    position: relative !important;
    width: 44px !important;
    height: 44px !important;
    margin: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }
  .training-topic-close::before,
  .training-course-detail-close::before,
  .technical-modal-close::before {
    top: 14px !important;
    left: 14px !important;
    width: 14px !important;
    height: 14px !important;
    border: 1px solid rgba(130,20,14,.20) !important;
    background: #ff5f57 !important;
    box-shadow: inset 0 -1px 1px rgba(0,0,0,.12), 0 1px 2px rgba(0,0,0,.08) !important;
    transform: none !important;
  }
  .training-topic-content,
  .training-course-detail-content,
  .technical-modal-content {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    overflow-y: auto !important;
    padding: 18px 18px 24px !important;
    display: grid !important;
    gap: 18px !important;
  }
  .training-topic-hero {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 18px !important;
    min-height: 0 !important;
    padding: 24px 22px !important;
    border-radius: 24px !important;
  }
  .training-topic-intro {
    display: grid !important;
    grid-template-columns: 64px minmax(0,1fr) !important;
    column-gap: 16px !important;
    align-items: start !important;
    padding: 0 !important;
  }
  .training-topic-icon {
    grid-row: 1 / span 4 !important;
    width: 64px !important;
    height: 64px !important;
    border-radius: 18px !important;
  }
  .training-topic-area-badge {
    width: max-content !important;
    max-width: 100% !important;
    padding: 8px 14px !important;
    font-size: 11px !important;
    line-height: 1 !important;
  }
  .training-topic-intro h2,
  .training-topic-modal.is-dense-topic .training-topic-intro h2 {
    margin-top: 12px !important;
    font-size: clamp(34px, 9.6vw, 42px) !important;
    line-height: 1.02 !important;
    letter-spacing: -.045em !important;
  }
  .training-topic-intro p,
  .training-topic-modal.is-dense-topic .training-topic-intro p {
    grid-column: 2 !important;
    margin-top: 16px !important;
    color: #4e4e4e !important;
    font-size: 18px !important;
    line-height: 1.55 !important;
  }
  .training-topic-visual { display: none !important; }
  .training-topic-section-head {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 8px !important;
    padding: 0 !important;
  }
  .training-topic-section-head h3 {
    font-size: 31px !important;
    line-height: 1.08 !important;
  }
  .training-topic-section-head span {
    justify-self: start !important;
    font-size: 14px !important;
    color: rgba(17,17,17,.58) !important;
  }
  .training-topic-courses {
    min-height: 0 !important;
    padding: 22px 18px !important;
    border-radius: 24px !important;
    overflow: visible !important;
  }
  .training-topic-course-list {
    display: grid !important;
    grid-auto-rows: auto !important;
    gap: 14px !important;
    max-height: none !important;
    padding: 0 !important;
    overflow: visible !important;
  }
  .training-topic-course-card {
    position: relative !important;
    display: grid !important;
    grid-template-columns: 74px minmax(0,1fr) 54px !important;
    grid-template-areas:
      "code copy action"
      "code meta action" !important;
    gap: 12px 14px !important;
    align-items: center !important;
    min-height: 176px !important;
    padding: 20px 14px !important;
    border: 1px solid rgba(255,90,31,.16) !important;
    border-radius: 22px !important;
    background: rgba(255,255,255,.78) !important;
    box-shadow: 0 18px 46px rgba(17,17,17,.045) !important;
    cursor: pointer !important;
  }
  .training-topic-course-card:focus-visible {
    outline: 3px solid rgba(255,90,31,.30) !important;
    outline-offset: 3px !important;
  }
  .training-topic-course-code {
    grid-area: code !important;
    width: 58px !important;
    min-width: 58px !important;
    height: 44px !important;
    display: inline-grid !important;
    place-items: center !important;
    border-radius: 14px !important;
    font-size: 16px !important;
    font-weight: 760 !important;
  }
  .training-topic-course-copy {
    grid-area: copy !important;
    min-width: 0 !important;
  }
  .training-topic-course-copy h4,
  .training-topic-modal.is-dense-topic .training-topic-course-copy h4 {
    font-size: 22px !important;
    line-height: 1.14 !important;
    letter-spacing: -.02em !important;
  }
  .training-topic-course-copy p {
    display: block !important;
    overflow: visible !important;
    margin-top: 8px !important;
    color: rgba(17,17,17,.62) !important;
    font-size: 15.5px !important;
    line-height: 1.44 !important;
    -webkit-line-clamp: unset !important;
  }
  .training-topic-course-duration,
  .training-topic-course-mode {
    display: inline-flex !important;
    grid-area: meta !important;
    align-items: center !important;
    min-height: 32px !important;
    margin: 0 !important;
    color: rgba(17,17,17,.68) !important;
    font-size: 14px !important;
    font-weight: 680 !important;
    white-space: nowrap !important;
  }
  .training-topic-course-mode { margin-left: 84px !important; }
  .training-topic-course-card > button {
    position: relative !important;
    z-index: 2 !important;
    grid-area: action !important;
    align-self: center !important;
    justify-self: end !important;
    width: 50px !important;
    height: 50px !important;
    min-height: 50px !important;
    border-radius: 999px !important;
    font-size: 26px !important;
  }
  .training-topic-footer,
  .training-course-detail-navigation,
  .technical-modal-footer {
    flex: 0 0 78px !important;
    min-height: 78px !important;
    padding: 0 18px calc(env(safe-area-inset-bottom) / 2) !important;
    border-top: 1px solid rgba(0,0,0,.06) !important;
    background: rgba(255,255,255,.95) !important;
  }
  .training-topic-nav,
  .training-course-detail-nav {
    min-height: 48px !important;
    font-size: 14px !important;
    line-height: 1.2 !important;
  }
  .training-topic-nav span:not([aria-hidden]),
  .training-course-detail-nav i {
    max-width: 118px !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }

  /* Secondo livello corso: più testo utile, meno spazio vuoto. */
  .training-course-detail-hero {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 22px !important;
    min-height: 0 !important;
    padding: 26px 22px !important;
    border-radius: 24px !important;
  }
  .training-course-detail-code {
    font-size: clamp(74px, 22vw, 104px) !important;
    line-height: .82 !important;
  }
  .training-course-detail-copy h2 {
    font-size: clamp(32px, 9vw, 42px) !important;
    line-height: 1.05 !important;
    letter-spacing: -.04em !important;
  }
  .training-course-detail-copy > p {
    display: block !important;
    overflow: visible !important;
    max-width: 100% !important;
    color: #4e4e4e !important;
    font-size: 18px !important;
    line-height: 1.55 !important;
    -webkit-line-clamp: unset !important;
  }
  .training-course-detail-visual {
    min-height: 190px !important;
    border-radius: 22px !important;
  }
  .training-course-detail-chips {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }
  .training-course-detail-chips span {
    min-height: 54px !important;
    padding: 12px 16px !important;
    justify-content: flex-start !important;
    font-size: 16px !important;
    white-space: normal !important;
  }
  .training-course-detail-cards {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 14px !important;
  }
  .training-course-detail-cards article {
    min-height: 0 !important;
    padding: 24px 22px !important;
    border-radius: 22px !important;
  }
  .training-course-detail-card-heading h3 {
    font-size: 28px !important;
    line-height: 1.12 !important;
  }
  .training-course-detail-cards li {
    display: list-item !important;
    color: #555 !important;
    font-size: 18px !important;
    line-height: 1.48 !important;
  }
  .training-course-detail-cards li:has(> span:only-child),
  .training-course-detail-cards li:empty { display: none !important; }
  .training-course-detail-cards li,
  .training-course-detail-cards li * { overflow-wrap: anywhere !important; }
  .training-course-detail-cards li:has(*:empty) { display: none !important; }
  .training-course-detail-cta {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 16px !important;
    padding: 24px 22px !important;
    border-radius: 22px !important;
  }
  .training-course-detail-cta h3 { font-size: 27px !important; }
  .training-course-detail-cta p { font-size: 17px !important; line-height: 1.55 !important; }
  .training-course-detail-cta a {
    width: 100% !important;
    min-height: 56px !important;
    justify-content: center !important;
  }

  /* Blog/articoli: card più ariose, niente newsletter, tag nella meta già gestibile. */
  .blog-hero { padding-bottom: 48px !important; }
  .blog-hero-art { opacity: .22 !important; pointer-events: none !important; }
  .blog-grid { grid-template-columns: 1fr !important; gap: 18px !important; }
  .newsletter-panel { display: none !important; }
  .single-hero { padding-top: 100px !important; }
  .single-hero-actions { display: flex !important; flex-wrap: wrap !important; gap: 10px !important; }
  .single-back { width: 100% !important; justify-content: center !important; }
  .single-hero .article-category { order: 2 !important; }
  .single-meta { display: flex !important; flex-wrap: wrap !important; gap: 10px 14px !important; }
  .single-content {
    padding: 34px 20px !important;
    font-size: 18px !important;
    line-height: 1.72 !important;
  }

  /* Legali e policy: testo normale giustificato ma leggibile su schermo piccolo. */
  .legal-content p,
  .cookie-settings-page p,
  .accessibility-content p {
    text-align: justify !important;
    text-align-last: left !important;
    hyphens: auto !important;
  }

  /* Cookie banner e ricerca: compatti e mai invadenti. */
  .consent-banner {
    right: 12px !important;
    bottom: calc(12px + env(safe-area-inset-bottom)) !important;
    left: 12px !important;
    max-height: min(72dvh, 560px) !important;
    padding: 18px !important;
    border-radius: 22px !important;
    overflow-y: auto !important;
  }
  .consent-banner-actions { grid-template-columns: 1fr !important; gap: 8px !important; }
  .consent-banner-actions button { min-height: 48px !important; }
  .waves-search-overlay { padding: 82px 12px 18px !important; }
  .waves-search-modal { max-height: calc(100dvh - 100px) !important; overflow-y: auto !important; border-radius: 24px !important; }
}

@media (max-width: 430px) {
  .training-topic-course-card {
    grid-template-columns: 58px minmax(0,1fr) 48px !important;
    min-height: 190px !important;
    padding: 18px 12px !important;
  }
  .training-topic-course-code { width: 50px !important; min-width: 50px !important; }
  .training-topic-course-copy h4,
  .training-topic-modal.is-dense-topic .training-topic-course-copy h4 { font-size: 20px !important; }
  .training-topic-course-copy p { font-size: 14.5px !important; }
  .training-topic-course-duration,
  .training-topic-course-mode { font-size: 13px !important; }
  .training-topic-course-mode { margin-left: 74px !important; }
  .training-topic-course-card > button { width: 46px !important; height: 46px !important; }
}

/**
 * Correzione strutturale finale dei drawer Formazione su mobile.
 * Il problema non era solo tipografico: alcune regole precedenti facevano
 * condividere a durata e modalità la stessa area di griglia, generando
 * sovrapposizioni su viewport reali iPhone/Safari. Questo blocco forza un
 * flusso verticale naturale: header e footer restano stabili, mentre il
 * contenuto centrale scorre senza altezze artificiali.
 */
@media (max-width: 767px) {
  body.training-topic-open,
  body.training-course-detail-open {
    overflow: hidden !important;
  }

  .training-topic-layer.is-open,
  .training-course-detail-layer.is-open {
    position: fixed !important;
    inset: 0 !important;
    display: block !important;
    padding: 0 !important;
    overflow: hidden !important;
  }

  .training-topic-modal,
  .training-course-detail-modal {
    position: relative !important;
    width: 100% !important;
    height: 100dvh !important;
    height: 100svh !important;
    max-width: none !important;
    max-height: none !important;
    margin: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
    border: 0 !important;
    border-radius: 0 !important;
  }

  .training-topic-header,
  .training-course-detail-header {
    flex: 0 0 66px !important;
    height: 66px !important;
    min-height: 66px !important;
    padding: 0 22px !important;
  }

  .training-topic-content,
  .training-course-detail-content {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    height: auto !important;
    max-height: none !important;
    display: block !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    padding: 20px 18px 28px !important;
    -webkit-overflow-scrolling: touch !important;
  }

  .training-topic-content > *,
  .training-course-detail-content > * {
    position: relative !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  .training-topic-footer,
  .training-course-detail-navigation {
    flex: 0 0 calc(86px + env(safe-area-inset-bottom)) !important;
    height: calc(86px + env(safe-area-inset-bottom)) !important;
    min-height: calc(86px + env(safe-area-inset-bottom)) !important;
    display: grid !important;
    grid-template-columns: minmax(0,1fr) auto minmax(0,1fr) !important;
    align-items: center !important;
    gap: 10px !important;
    padding: 0 18px env(safe-area-inset-bottom) !important;
    background: rgba(255,255,255,.96) !important;
    border-top: 1px solid rgba(0,0,0,.06) !important;
  }

  .training-topic-hero {
    display: block !important;
    min-height: 0 !important;
    height: auto !important;
    margin: 0 0 18px !important;
    padding: 24px 20px !important;
    overflow: visible !important;
    border-radius: 24px !important;
  }

  .training-topic-intro {
    display: block !important;
    min-height: 0 !important;
    padding: 0 !important;
  }

  .training-topic-icon {
    float: left !important;
    width: 58px !important;
    height: 58px !important;
    margin: 0 14px 10px 0 !important;
    border-radius: 17px !important;
  }

  .training-topic-area-badge {
    display: inline-flex !important;
    width: auto !important;
    max-width: calc(100% - 72px) !important;
    min-height: 36px !important;
    padding: 8px 14px !important;
    align-items: center !important;
    justify-content: center !important;
    white-space: nowrap !important;
  }

  .training-topic-intro h2,
  .training-topic-modal.is-dense-topic .training-topic-intro h2 {
    clear: none !important;
    margin: 18px 0 0 !important;
    font-size: clamp(36px, 10.2vw, 44px) !important;
    line-height: 1.02 !important;
    letter-spacing: -.045em !important;
  }

  .training-topic-intro p,
  .training-topic-modal.is-dense-topic .training-topic-intro p {
    clear: both !important;
    display: block !important;
    grid-column: auto !important;
    max-width: none !important;
    margin: 20px 0 0 !important;
    overflow: visible !important;
    color: #4e4e4e !important;
    font-size: 20px !important;
    line-height: 1.48 !important;
    text-align: left !important;
    -webkit-line-clamp: unset !important;
  }

  .training-topic-visual {
    display: none !important;
  }

  .training-topic-courses,
  .training-topic-standards {
    display: block !important;
    min-height: 0 !important;
    height: auto !important;
    max-height: none !important;
    margin: 0 0 18px !important;
    padding: 22px 16px !important;
    overflow: visible !important;
    border-radius: 24px !important;
  }

  .training-topic-section-head {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 6px !important;
    margin: 0 0 16px !important;
    padding: 0 !important;
  }

  .training-topic-section-head h3 {
    margin: 0 !important;
    font-size: clamp(30px, 8.5vw, 38px) !important;
    line-height: 1.08 !important;
    letter-spacing: -.035em !important;
  }

  .training-topic-section-head span {
    justify-self: start !important;
    margin: 0 !important;
    font-size: 15px !important;
    line-height: 1.25 !important;
  }

  .training-topic-course-list,
  .training-topic-modal.is-dense-topic .training-topic-course-list {
    display: block !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .training-topic-course-card,
  .training-topic-modal.is-dense-topic .training-topic-course-card {
    position: relative !important;
    display: grid !important;
    grid-template-columns: 62px minmax(0,1fr) 50px !important;
    grid-template-areas:
      "code copy action"
      "code duration action"
      "code mode action" !important;
    column-gap: 14px !important;
    row-gap: 10px !important;
    align-items: center !important;
    width: 100% !important;
    min-height: 0 !important;
    height: auto !important;
    margin: 0 0 14px !important;
    padding: 18px 12px !important;
    overflow: visible !important;
    border-radius: 22px !important;
    transform: none !important;
  }

  .training-topic-course-card:last-child,
  .training-topic-modal.is-dense-topic .training-topic-course-card:last-child {
    margin-bottom: 0 !important;
  }

  .training-topic-course-code {
    grid-area: code !important;
    align-self: center !important;
    justify-self: center !important;
    width: 52px !important;
    min-width: 52px !important;
    height: 44px !important;
    font-size: 16px !important;
  }

  .training-topic-course-copy {
    grid-area: copy !important;
    align-self: center !important;
    min-width: 0 !important;
    padding: 0 !important;
  }

  .training-topic-course-copy h4,
  .training-topic-modal.is-dense-topic .training-topic-course-copy h4 {
    display: block !important;
    margin: 0 !important;
    overflow: visible !important;
    color: #151515 !important;
    font-size: clamp(22px, 6.8vw, 29px) !important;
    line-height: 1.14 !important;
    letter-spacing: -.03em !important;
    white-space: normal !important;
    text-overflow: clip !important;
  }

  .training-topic-course-copy p,
  .training-topic-modal.is-dense-topic .training-topic-course-copy p {
    display: block !important;
    max-height: none !important;
    margin: 10px 0 0 !important;
    overflow: visible !important;
    color: rgba(17,17,17,.62) !important;
    font-size: 16.5px !important;
    line-height: 1.42 !important;
    text-align: left !important;
    white-space: normal !important;
    text-overflow: clip !important;
    -webkit-line-clamp: unset !important;
  }

  .training-topic-course-duration,
  .training-topic-course-mode {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    min-width: 0 !important;
    min-height: 30px !important;
    margin: 0 !important;
    padding: 0 !important;
    color: rgba(17,17,17,.68) !important;
    font-size: 15px !important;
    font-weight: 680 !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
  }

  .training-topic-course-duration {
    grid-area: duration !important;
  }

  .training-topic-course-mode {
    grid-area: mode !important;
  }

  .training-topic-course-meta::before {
    flex: 0 0 24px !important;
    width: 24px !important;
    height: 24px !important;
    margin-right: 8px !important;
  }

  .training-topic-course-card > button {
    grid-area: action !important;
    align-self: center !important;
    justify-self: center !important;
    width: 50px !important;
    height: 50px !important;
    min-width: 50px !important;
    min-height: 50px !important;
    margin: 0 !important;
  }

  .training-topic-standards-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }

  .training-topic-standard-card {
    min-height: 54px !important;
    padding: 12px 14px !important;
    display: grid !important;
    place-items: center !important;
    text-align: center !important;
  }

  .training-course-detail-hero,
  .training-course-detail-cards,
  .training-course-detail-cta {
    margin: 0 0 16px !important;
  }

  .training-course-detail-hero {
    display: block !important;
    height: auto !important;
    min-height: 0 !important;
    padding: 24px 20px !important;
    overflow: visible !important;
  }

  .training-course-detail-visual {
    display: none !important;
  }

  .training-course-detail-code {
    margin: 12px 0 14px !important;
    font-size: clamp(66px, 18vw, 88px) !important;
  }

  .training-course-detail-copy h2 {
    font-size: clamp(30px, 7.6vw, 38px) !important;
    line-height: 1.08 !important;
    letter-spacing: -.04em !important;
  }

  .training-course-detail-copy > p {
    font-size: 20px !important;
    line-height: 1.48 !important;
  }

  .training-course-detail-cards article {
    height: auto !important;
    min-height: 0 !important;
  }

  .training-course-detail-cards li {
    display: list-item !important;
  }

  .training-course-detail-cards li:empty,
  .training-course-detail-cards li[data-empty="true"] {
    display: none !important;
  }
}

@media (max-width: 390px) {
  .training-topic-content,
  .training-course-detail-content {
    padding-inline: 14px !important;
  }

  .training-topic-hero,
  .training-topic-courses,
  .training-topic-standards {
    padding-inline: 14px !important;
  }

  .training-topic-course-card,
  .training-topic-modal.is-dense-topic .training-topic-course-card {
    grid-template-columns: 56px minmax(0,1fr) 46px !important;
    column-gap: 12px !important;
    padding: 16px 10px !important;
  }

  .training-topic-course-code {
    width: 48px !important;
    min-width: 48px !important;
  }
}

/**
 * Variante mobile definitiva delle righe corso.
 * Il titolo usa tutta la larghezza utile: su smartphone evita colonne troppo
 * strette, righe gigantesche e qualsiasi collisione tra testi e controlli.
 */
@media (max-width: 767px) {
  .training-topic-course-card,
  .training-topic-modal.is-dense-topic .training-topic-course-card {
    grid-template-columns: minmax(0,1fr) 50px !important;
    grid-template-areas:
      "code action"
      "copy copy"
      "duration duration"
      "mode mode" !important;
    row-gap: 12px !important;
    column-gap: 12px !important;
    padding: 18px 16px !important;
  }

  .training-topic-course-code {
    justify-self: start !important;
  }

  .training-topic-course-card > button {
    justify-self: end !important;
  }

  .training-topic-course-copy h4,
  .training-topic-modal.is-dense-topic .training-topic-course-copy h4 {
    max-width: 100% !important;
    font-size: clamp(23px, 6.2vw, 28px) !important;
  }

  .training-topic-course-copy p,
  .training-topic-modal.is-dense-topic .training-topic-course-copy p {
    max-width: 100% !important;
    font-size: 17px !important;
  }

  .training-topic-course-duration,
  .training-topic-course-mode {
    width: 100% !important;
    padding-left: 2px !important;
  }
}

@media (max-width: 390px) {
  .training-topic-course-card,
  .training-topic-modal.is-dense-topic .training-topic-course-card {
    grid-template-columns: minmax(0,1fr) 46px !important;
    padding: 16px 14px !important;
  }
}

/**
 * Menu mobile sulle pagine Formazione.
 * L'header arancione usa loghi e hamburger bianchi, ma il pannello aperto deve
 * tornare leggibile su fondo glass chiaro. Questo override neutralizza le
 * regole bianche del tema formazione solo dentro il drawer mobile.
 */
@media (max-width: 767px) {
  body.training-body .site-header .main-nav,
  body.training-contact-body .site-header .main-nav {
    border-color: rgba(255,90,31,.14) !important;
    background: rgba(255,255,255,.96) !important;
    box-shadow: 0 28px 90px rgba(62,22,8,.16), inset 0 1px 0 rgba(255,255,255,.95) !important;
  }

  body.training-body .site-header .main-nav a,
  body.training-contact-body .site-header .main-nav a,
  body.training-body .site-header .nav-dropdown-trigger > a,
  body.training-contact-body .site-header .nav-dropdown-trigger > a,
  body.training-body .site-header .nav-submenu a,
  body.training-contact-body .site-header .nav-submenu a,
  body.training-body .site-header .nav-submenu a small,
  body.training-contact-body .site-header .nav-submenu a small {
    color: #151515 !important;
    opacity: 1 !important;
    text-shadow: none !important;
  }

  body.training-body .site-header .main-nav a.is-current,
  body.training-contact-body .site-header .main-nav a.is-current,
  body.training-body .site-header .nav-dropdown-trigger > a.is-current,
  body.training-contact-body .site-header .nav-dropdown-trigger > a.is-current {
    color: #ff5a1f !important;
    background: rgba(255,90,31,.08) !important;
  }

  body.training-body .site-header .main-nav a:hover,
  body.training-body .site-header .main-nav a:focus-visible,
  body.training-contact-body .site-header .main-nav a:hover,
  body.training-contact-body .site-header .main-nav a:focus-visible {
    color: #ff5a1f !important;
    background: rgba(255,90,31,.08) !important;
  }

  body.training-body .site-header .submenu-toggle,
  body.training-contact-body .site-header .submenu-toggle {
    color: #151515 !important;
    opacity: 1 !important;
  }

  body.training-body .site-header .nav-submenu,
  body.training-contact-body .site-header .nav-submenu {
    border-color: rgba(255,90,31,.14) !important;
    background: rgba(255,90,31,.045) !important;
  }

  body.training-body .site-header .main-nav > a:last-of-type,
  body.training-contact-body .site-header .main-nav > a:last-of-type {
    color: #fff !important;
    background: #ff5a1f !important;
  }

  body.training-body .site-header .main-nav .language-switch,
  body.training-contact-body .site-header .main-nav .language-switch {
    border-color: rgba(255,90,31,.12) !important;
    background: rgba(255,255,255,.82) !important;
  }

  body.training-body .site-header .main-nav .language-switch a,
  body.training-contact-body .site-header .main-nav .language-switch a {
    color: #151515 !important;
  }

  body.training-body .site-header .main-nav .language-switch a.is-active,
  body.training-contact-body .site-header .main-nav .language-switch a.is-active {
    color: #ff5a1f !important;
    background: rgba(255,90,31,.10) !important;
  }
}

/**
 * Mobile Premium Hardening — override finale.
 * Deve restare in fondo al file: protegge telefono e tablet piccoli dalle
 * vecchie regole stratificate, senza influire sul desktop.
 */
@media (max-width: 767px) {
  html,
  body {
    overflow-x: clip !important;
  }

  .site-header {
    min-height: 72px !important;
  }

  .header-inner {
    padding-inline: clamp(18px, 5vw, 24px) !important;
  }

  .main-nav {
    inset: calc(74px + env(safe-area-inset-top)) clamp(18px, 5vw, 24px) auto !important;
    width: auto !important;
    max-height: min(74dvh, 620px) !important;
    padding: 14px !important;
    border-radius: 28px !important;
    background: rgba(255,255,255,.965) !important;
    box-shadow: 0 30px 90px rgba(17,17,17,.16), inset 0 1px 0 rgba(255,255,255,.96) !important;
    overflow-y: auto !important;
  }

  .main-nav > a:last-child,
  .main-nav > a:last-of-type {
    justify-content: flex-start !important;
    min-height: 52px !important;
    margin-top: 0 !important;
    padding: 13px 15px !important;
    color: #141414 !important;
    background: transparent !important;
    font-size: 17px !important;
  }

  .main-nav > a:last-child::before,
  .main-nav > a:last-of-type::before,
  .main-nav > a:last-child::after,
  .main-nav > a:last-of-type::after {
    display: none !important;
    content: none !important;
  }

  body.training-body .site-header .main-nav,
  body.training-contact-body .site-header .main-nav {
    background: rgba(255,255,255,.97) !important;
  }

  body.training-body .site-header .main-nav > a,
  body.training-contact-body .site-header .main-nav > a,
  body.training-body .site-header .nav-dropdown-trigger > a,
  body.training-contact-body .site-header .nav-dropdown-trigger > a {
    color: #141414 !important;
  }

  body.training-body .menu-toggle span,
  body.training-contact-body .menu-toggle span {
    background: #fff !important;
  }

  body.home .hero-visual {
    display: none !important;
  }

  .hero h1,
  .company-hero h1,
  .technical-hero h1,
  .training-hero h1,
  .blog-hero h1,
  .sim-hero h1,
  .market-hero h1,
  .contact-hero h1,
  .single-hero h1 {
    max-width: 100% !important;
    font-size: clamp(38px, 10.6vw, 48px) !important;
    line-height: 1.02 !important;
    letter-spacing: -.048em !important;
    overflow-wrap: normal !important;
    text-wrap: balance !important;
  }

  .hero-lead,
  .company-hero-copy > p:not(.company-eyebrow),
  .technical-hero-copy > p:not(.technical-eyebrow),
  .training-lead,
  .blog-hero-copy > p:not(.blog-kicker),
  .sim-hero-copy > p:not(.sim-eyebrow),
  .contact-copy > p:not(.market-eyebrow),
  .single-excerpt {
    font-size: 18px !important;
    line-height: 1.62 !important;
  }

  .single-hero.has-cover .single-excerpt,
  .single-hero.has-cover .single-meta {
    color: rgba(255,255,255,.88) !important;
  }

  body.training-topic-open,
  body.training-course-detail-open {
    overflow: hidden !important;
  }

  .training-topic-layer.is-open,
  .training-course-detail-layer.is-open {
    position: fixed !important;
    inset: 0 !important;
    display: block !important;
    padding: 0 !important;
    overflow: hidden !important;
  }

  .training-topic-modal,
  .training-course-detail-modal {
    display: grid !important;
    grid-template-rows: 66px minmax(0,1fr) auto !important;
    width: 100% !important;
    height: 100dvh !important;
    height: 100svh !important;
    max-width: none !important;
    max-height: none !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    overflow: hidden !important;
    background: rgba(255,253,251,.98) !important;
  }

  .training-topic-header,
  .training-course-detail-header {
    grid-row: 1 !important;
    min-height: 66px !important;
    height: 66px !important;
    padding: 0 22px !important;
    background: rgba(255,253,251,.96) !important;
  }

  .training-topic-content,
  .training-course-detail-content {
    grid-row: 2 !important;
    display: block !important;
    min-height: 0 !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    padding: 20px clamp(18px, 5vw, 24px) 28px !important;
    -webkit-overflow-scrolling: touch !important;
  }

  .training-topic-footer,
  .training-course-detail-navigation {
    grid-row: 3 !important;
    position: relative !important;
    display: grid !important;
    grid-template-columns: minmax(0,1fr) auto minmax(0,1fr) !important;
    align-items: center !important;
    gap: 10px !important;
    min-height: calc(82px + env(safe-area-inset-bottom)) !important;
    padding: 0 clamp(18px, 5vw, 24px) env(safe-area-inset-bottom) !important;
    border-top: 1px solid rgba(17,17,17,.06) !important;
    background: rgba(255,255,255,.97) !important;
  }

  .training-topic-close,
  .training-course-detail-close,
  .technical-modal-close {
    position: relative !important;
    width: 44px !important;
    height: 44px !important;
    margin: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  .training-topic-close::before,
  .training-course-detail-close::before,
  .technical-modal-close::before {
    position: absolute !important;
    top: 13px !important;
    left: 13px !important;
    width: 16px !important;
    height: 16px !important;
    border: 1px solid rgba(130,20,14,.22) !important;
    border-radius: 999px !important;
    background: #ff5f57 !important;
    box-shadow: inset 0 -1px 1px rgba(0,0,0,.13), 0 1px 2px rgba(0,0,0,.08) !important;
    transform: none !important;
    content: "" !important;
  }

  .training-topic-hero,
  .training-topic-courses,
  .training-topic-standards,
  .training-course-detail-hero,
  .training-course-detail-cta {
    display: block !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 0 18px !important;
    padding: 24px 20px !important;
    overflow: visible !important;
    border-radius: 26px !important;
  }

  .training-topic-intro {
    display: grid !important;
    grid-template-columns: 62px minmax(0,1fr) !important;
    gap: 14px 16px !important;
    align-items: start !important;
    padding: 0 !important;
  }

  .training-topic-icon {
    grid-row: 1 / span 3 !important;
    width: 62px !important;
    height: 62px !important;
    margin: 0 !important;
    border-radius: 18px !important;
  }

  .training-topic-area-badge {
    justify-self: start !important;
    width: auto !important;
    max-width: 100% !important;
    min-height: 34px !important;
    padding: 8px 14px !important;
    font-size: 11px !important;
    line-height: 1 !important;
    white-space: nowrap !important;
  }

  .training-topic-intro h2,
  .training-topic-modal.is-dense-topic .training-topic-intro h2 {
    margin: 4px 0 0 !important;
    overflow: visible !important;
    font-size: clamp(34px, 9.4vw, 42px) !important;
    line-height: 1.02 !important;
    letter-spacing: -.045em !important;
    text-wrap: balance !important;
  }

  .training-topic-intro p,
  .training-topic-modal.is-dense-topic .training-topic-intro p {
    grid-column: 1 / -1 !important;
    display: block !important;
    max-width: none !important;
    margin: 10px 0 0 !important;
    overflow: visible !important;
    color: #4e4e4e !important;
    font-size: 18px !important;
    line-height: 1.56 !important;
    white-space: normal !important;
    text-overflow: clip !important;
    -webkit-line-clamp: unset !important;
  }

  .training-topic-visual,
  .training-course-detail-visual {
    display: none !important;
  }

  .training-topic-course-list,
  .training-topic-modal.is-dense-topic .training-topic-course-list {
    display: grid !important;
    grid-auto-rows: auto !important;
    gap: 14px !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
    padding: 0 !important;
  }

  .training-topic-course-card,
  .training-topic-modal.is-dense-topic .training-topic-course-card {
    display: grid !important;
    grid-template-columns: minmax(0,1fr) 54px !important;
    grid-template-areas:
      "code action"
      "copy copy"
      "duration duration"
      "mode mode" !important;
    gap: 12px !important;
    min-height: 0 !important;
    height: auto !important;
    margin: 0 !important;
    padding: 18px 16px !important;
    overflow: visible !important;
    border: 1px solid rgba(255,90,31,.16) !important;
    border-radius: 23px !important;
    background: rgba(255,255,255,.82) !important;
    box-shadow: 0 18px 46px rgba(17,17,17,.045), inset 0 1px 0 rgba(255,255,255,.92) !important;
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
  }

  .training-topic-course-code {
    grid-area: code !important;
    justify-self: start !important;
    align-self: center !important;
    width: auto !important;
    min-width: 58px !important;
    min-height: 44px !important;
    padding: 8px 14px !important;
    border-radius: 15px !important;
    font-size: 16px !important;
  }

  .training-topic-course-copy {
    grid-area: copy !important;
    min-width: 0 !important;
    padding: 0 !important;
    border-left: 0 !important;
  }

  .training-topic-course-copy h4,
  .training-topic-modal.is-dense-topic .training-topic-course-copy h4 {
    display: block !important;
    margin: 0 !important;
    overflow: visible !important;
    color: #151515 !important;
    font-size: clamp(22px, 6.3vw, 29px) !important;
    line-height: 1.14 !important;
    letter-spacing: -.032em !important;
    white-space: normal !important;
    text-overflow: clip !important;
  }

  .training-topic-course-copy p,
  .training-topic-modal.is-dense-topic .training-topic-course-copy p {
    display: block !important;
    max-height: none !important;
    margin: 10px 0 0 !important;
    overflow: visible !important;
    color: rgba(17,17,17,.64) !important;
    font-size: 17px !important;
    line-height: 1.45 !important;
    white-space: normal !important;
    text-overflow: clip !important;
    -webkit-line-clamp: unset !important;
  }

  .training-topic-course-duration,
  .training-topic-course-mode {
    display: inline-flex !important;
    align-items: center !important;
    gap: 9px !important;
    width: 100% !important;
    min-height: 32px !important;
    margin: 0 !important;
    padding: 0 !important;
    color: rgba(17,17,17,.68) !important;
    font-size: 15px !important;
    font-weight: 690 !important;
    line-height: 1.25 !important;
    white-space: nowrap !important;
  }

  .training-topic-course-duration {
    grid-area: duration !important;
  }

  .training-topic-course-mode {
    grid-area: mode !important;
  }

  .training-topic-course-duration[hidden],
  .training-topic-course-mode[hidden] {
    display: none !important;
  }

  .training-topic-course-card > button {
    grid-area: action !important;
    justify-self: end !important;
    align-self: center !important;
    width: 54px !important;
    height: 54px !important;
    min-width: 54px !important;
    min-height: 54px !important;
    margin: 0 !important;
    border-radius: 999px !important;
    font-size: 27px !important;
  }

  .training-topic-section-head {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 8px !important;
    margin: 0 0 18px !important;
  }

  .training-topic-section-head h3 {
    margin: 0 !important;
    font-size: clamp(30px, 8.4vw, 38px) !important;
    line-height: 1.08 !important;
    letter-spacing: -.04em !important;
  }

  .training-topic-section-head span {
    justify-self: start !important;
    font-size: 15px !important;
  }

  .training-topic-standards-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }

  .training-topic-standard-card {
    min-height: 52px !important;
    padding: 11px 14px !important;
    display: grid !important;
    place-items: center !important;
    text-align: center !important;
    font-size: 15px !important;
  }

  .training-course-detail-code {
    margin: 10px 0 14px !important;
    font-size: clamp(68px, 19vw, 96px) !important;
    line-height: .85 !important;
  }

  .training-course-detail-copy h2 {
    font-size: clamp(31px, 8.4vw, 40px) !important;
    line-height: 1.07 !important;
    letter-spacing: -.042em !important;
  }

  .training-course-detail-copy > p {
    margin-top: 18px !important;
    font-size: 18.5px !important;
    line-height: 1.56 !important;
  }

  .training-course-detail-cards {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 14px !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
  }

  .training-course-detail-cards article {
    min-height: 0 !important;
    padding: 24px 22px !important;
    border-radius: 24px !important;
  }

  .training-course-detail-card-heading h3 {
    font-size: 27px !important;
    line-height: 1.12 !important;
  }

  .training-course-detail-cards li {
    font-size: 18px !important;
    line-height: 1.5 !important;
  }

  .training-course-detail-cards li:empty,
  .training-course-detail-cards li[data-empty="true"] {
    display: none !important;
  }

  .newsletter-panel {
    display: none !important;
  }

  .single-article-cta,
  .article-final-cta,
  .single-cta {
    position: static !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    pointer-events: auto !important;
  }
}

@media (max-width: 390px) {
  .training-topic-intro {
    grid-template-columns: 56px minmax(0,1fr) !important;
  }

  .training-topic-icon {
    width: 56px !important;
    height: 56px !important;
  }

  .training-topic-intro h2,
  .training-topic-modal.is-dense-topic .training-topic-intro h2 {
    font-size: clamp(31px, 9vw, 38px) !important;
  }

  .training-topic-course-card,
  .training-topic-modal.is-dense-topic .training-topic-course-card {
    grid-template-columns: minmax(0,1fr) 50px !important;
    padding: 17px 14px !important;
  }

  .training-topic-course-copy p,
  .training-topic-modal.is-dense-topic .training-topic-course-copy p {
    font-size: 16px !important;
  }

  .training-topic-footer,
  .training-course-detail-navigation {
    grid-template-columns: 1fr 1fr !important;
  }

  .training-topic-position,
  .training-course-detail-nav-dots {
    display: none !important;
  }
}

/* === Visual system phase 1: homepage sample (2026-08-25) === */
:root{--wv-container:1380px;--wv-page-gutter:32px;--wv-radius-media:26px;--wv-radius-panel:28px;--wv-section-space:clamp(72px,7vw,104px);--wv-shadow-media:0 28px 76px rgba(17,17,17,.08)}
body.home .hero{display:block;min-height:0!important;padding:118px 0 0!important;overflow:hidden}
body.home .hero-grid{position:relative;display:grid!important;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr)!important;align-items:center;gap:clamp(42px,5vw,76px);width:min(calc(100% - (var(--wv-page-gutter) * 2)),var(--wv-container));min-height:0!important;padding:42px 0 48px}
body.home .hero-copy{position:relative;z-index:2;width:100%;max-width:620px;padding:0}
body.home .hero h1{max-width:620px;font-size:clamp(58px,4.9vw,74px)!important;line-height:.98!important}
body.home .hero-lead{display:block!important;max-width:560px;margin:26px 0 30px;font-size:18px!important;line-height:1.58!important}
body.home .hero-visual{position:relative!important;inset:auto!important;display:block!important;width:100%!important;height:auto!important;min-height:0!important;aspect-ratio:16/9;margin:0!important;overflow:visible!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;opacity:1!important;pointer-events:none}
body.home .hero-visual::after{position:absolute;z-index:1;display:block;inset:-2px;background:linear-gradient(90deg,#f8faf9 0%,rgba(248,250,249,.72) 10%,rgba(248,250,249,.16) 27%,transparent 48%);content:"";pointer-events:none}
body.home .hero-visual img,body.home .hero .hero-visual img{position:absolute!important;inset:0!important;width:100%!important;max-width:100%!important;height:100%!important;opacity:1!important;filter:brightness(1.03) contrast(.98) saturate(.94);object-fit:contain!important;object-position:center center!important;transform:none!important}
body.home .hero>.standards{margin-top:0!important}
body.home .machine-regulation{min-height:0!important;padding:var(--wv-section-space) 0!important}
body.home .machine-regulation-inner{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr)!important;align-items:center;gap:clamp(44px,5vw,76px);height:auto!important;min-height:0!important;max-height:none!important;padding:clamp(42px,4vw,64px)!important;border-radius:var(--wv-radius-panel)}
body.home .machine-regulation-copy{max-width:620px;padding:0!important}
body.home .machine-regulation h2{font-size:clamp(44px,3.8vw,58px)}
body.home .machine-regulation-visual{position:relative!important;display:block;width:100%;height:auto!important;min-height:0!important;aspect-ratio:16/9;margin:0;overflow:visible!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}
body.home .machine-regulation-visual img{position:absolute!important;inset:0!important;width:100%!important;max-width:100%!important;height:100%!important;max-height:none!important;object-fit:contain!important;object-position:center center!important;transform:none!important;clip-path:none!important}
@media(max-width:1100px){:root{--wv-page-gutter:24px}body.home .hero{padding-top:104px!important}body.home .hero-grid{grid-template-columns:1fr!important;gap:36px;padding:34px 0 42px}body.home .hero-copy{max-width:720px}body.home .hero h1{max-width:720px;font-size:clamp(48px,7vw,58px)!important}body.home .hero-visual{max-width:920px}body.home .machine-regulation-inner{grid-template-columns:1fr!important;gap:38px;padding:42px!important}body.home .machine-regulation-copy{max-width:760px}body.home .machine-regulation-visual{max-width:920px}}
@media(max-width:700px){:root{--wv-page-gutter:18px;--wv-radius-media:20px}body.home .hero{padding-top:88px!important}body.home .hero-grid{gap:28px;padding:28px 0 34px}body.home .hero h1{font-size:clamp(40px,11vw,48px)!important;line-height:1.01!important}body.home .hero-lead{margin:22px 0 26px;font-size:16px!important;text-align:left}body.home .hero-visual{aspect-ratio:16/10}body.home .hero-visual::after{background:linear-gradient(180deg,#f8faf9 0%,rgba(248,250,249,.08) 22%,transparent 50%,rgba(248,250,249,.2) 100%)}body.home .hero>.standards{margin-top:0!important}body.home .machine-regulation{padding:58px 0!important}body.home .machine-regulation-inner{gap:30px;padding:28px 20px!important;border-radius:22px}body.home .machine-regulation h2{font-size:clamp(36px,10vw,44px)}body.home .machine-regulation-visual{aspect-ratio:16/10;border-radius:0!important}}

/* === Visual system phase 2: company-style desktop heroes (2026-08-26) === */
@media (min-width:1101px) {
  body.home .hero,
  .technical-hero,
  .training-hero,
  .blog-hero,
  .market-hero,
  .contact-hero {
    position:relative!important;
    display:flex!important;
    align-items:center!important;
    min-height:100svh!important;
    box-sizing:border-box!important;
    padding:110px 0 48px!important;
    overflow:hidden!important;
  }

  body.home .hero {
    padding-bottom:148px!important;
    background:#f9fbfa!important;
  }
  body.home .hero-grid,
  .technical-hero-grid,
  .training-hero-grid,
  .blog-hero-grid,
  .market-hero-grid,
  .contact-hero-grid {
    position:relative!important;
    z-index:2!important;
    display:block!important;
    width:min(calc(100% - 64px),1380px)!important;
    min-height:0!important;
    height:auto!important;
    padding:0!important;
  }
  body.home .hero-copy,
  .technical-hero-copy,
  .training-hero-copy,
  .blog-hero-copy,
  .market-hero-copy,
  .contact-copy {
    position:relative!important;
    z-index:2!important;
    width:100%!important;
    max-width:560px!important;
    padding:0!important;
  }

  body.home .hero-visual,
  .technical-hero-visual,
  .training-hero-visual,
  .blog-hero-art,
  .eu-hero-bg,
  .market-hero-media,
  .contact-hero-media {
    position:absolute!important;
    z-index:0!important;
    top:92px!important;
    right:0!important;
    bottom:auto!important;
    left:auto!important;
    display:block!important;
    width:68%!important;
    max-width:none!important;
    height:calc(100% - 92px)!important;
    min-height:0!important;
    margin:0!important;
    overflow:hidden!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
    opacity:1!important;
    pointer-events:none!important;
  }
  body.home .hero-visual::after,
  .technical-hero-visual::after,
  .training-hero-visual::after,
  .blog-hero-art::after {
    display:none!important;
  }
  body.home .hero-visual>picture,
  .technical-hero-visual>picture,
  .training-hero-visual>picture,
  .blog-hero-art>picture,
  .eu-hero-bg>picture {
    display:contents!important;
  }
  body.home .hero-visual img,
  body.home .hero .hero-visual img,
  .technical-hero-visual img,
  .training-hero-visual img,
  .blog-hero-art img,
  .eu-hero-bg img,
  .market-hero-media img,
  .contact-hero-media img {
    position:absolute!important;
    inset:0!important;
    display:block!important;
    width:100%!important;
    max-width:none!important;
    height:100%!important;
    opacity:1!important;
    filter:none!important;
    object-fit:cover!important;
    object-position:center!important;
    transform:none!important;
    mix-blend-mode:normal!important;
    -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 22%,#000 100%),linear-gradient(180deg,#000 78%,transparent 100%)!important;
    mask-image:linear-gradient(90deg,transparent 0,#000 22%,#000 100%),linear-gradient(180deg,#000 78%,transparent 100%)!important;
    -webkit-mask-composite:source-in!important;
    mask-composite:intersect!important;
  }
  body.home .hero>.standards {
    position:absolute!important;
    z-index:3!important;
    right:0!important;
    bottom:0!important;
    left:0!important;
    margin:0!important;
    background:rgba(255,255,255,.9)!important;
    backdrop-filter:blur(18px) saturate(145%);
    -webkit-backdrop-filter:blur(18px) saturate(145%);
  }

  .technical-hero,
  .blog-hero,
  .market-hero,
  .contact-hero {
    background-color:#f9fbfa!important;
  }
  .training-hero {
    background-color:#fffaf7!important;
  }
  .technical-hero h1,
  .training-hero h1,
  .blog-hero h1,
  .market-hero h1,
  .contact-hero h1 {
    max-width:620px!important;
  }

  .market-hero:not(.eu-hero)::after,
  .contact-hero::after {
    display:none!important;
  }
  .market-world,
  .market-hero-visual {
    display:none!important;
  }
  .eu-hero::before {
    z-index:1!important;
    background:linear-gradient(90deg,rgba(255,255,255,.98) 0%,rgba(255,255,255,.91) 32%,rgba(255,255,255,.32) 56%,rgba(255,255,255,.02) 82%)!important;
  }
  .eu-hero::after {
    display:none!important;
  }

  .contact-form-section {
    padding:100px 0!important;
    background:#fff!important;
  }
  .contact-form-section .contact-form-panel {
    width:min(100%,980px)!important;
    margin:0 auto!important;
  }
  .contact-form-section .contact-direct {
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    width:min(100%,980px)!important;
    margin:0 auto 22px!important;
  }

  body.training-body .training-hero {
    position:relative!important;
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    min-height:100svh!important;
    height:auto!important;
    box-sizing:border-box!important;
    padding:110px 0 48px!important;
    overflow:hidden!important;
  }
  body.training-body .training-hero-grid {
    position:relative!important;
    z-index:2!important;
    display:block!important;
    width:min(calc(100% - 64px),1380px)!important;
    min-height:0!important;
    height:auto!important;
    padding:0!important;
  }
  body.training-body .training-hero-copy {
    width:100%!important;
    max-width:560px!important;
    padding:0!important;
  }
  body.training-body .training-hero-visual {
    position:absolute!important;
    z-index:0!important;
    top:92px!important;
    right:0!important;
    bottom:auto!important;
    left:auto!important;
    display:block!important;
    width:68%!important;
    height:calc(100% - 92px)!important;
    min-height:0!important;
    margin:0!important;
    overflow:hidden!important;
    border:0!important;
    border-radius:0!important;
    box-shadow:none!important;
  }
  body.training-body .training-hero-visual::after {
    display:none!important;
  }
  body.training-body .training-hero-visual img {
    position:absolute!important;
    inset:0!important;
    width:100%!important;
    max-width:none!important;
    height:100%!important;
    border-radius:0!important;
    object-fit:cover!important;
    object-position:center!important;
    -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 22%,#000 100%),linear-gradient(180deg,#000 78%,transparent 100%)!important;
    mask-image:linear-gradient(90deg,transparent 0,#000 22%,#000 100%),linear-gradient(180deg,#000 78%,transparent 100%)!important;
    -webkit-mask-composite:source-in!important;
    mask-composite:intersect!important;
  }

  body.training-course-body .training-course-page-hero {
    position:relative!important;
    display:flex!important;
    align-items:center!important;
    min-height:calc(100svh - 131px)!important;
    box-sizing:border-box!important;
    overflow:hidden!important;
    background-image:linear-gradient(90deg,rgba(255,250,247,.98) 0%,rgba(255,250,247,.92) 33%,rgba(255,250,247,.24) 60%,rgba(255,250,247,.02) 82%),url("training-hero.png")!important;
    background-position:center!important;
    background-size:cover!important;
  }
  body.training-course-body .training-course-page-hero-grid {
    display:block!important;
    min-height:0!important;
  }
  body.training-course-body .training-course-page-copy {
    max-width:600px!important;
  }
  body.training-course-body .training-course-page-visual {
    display:none!important;
  }
}

.contact-form-section {
  position:relative;
  padding:80px 0;
  background:#fff;
}
.market-hero-media,
.contact-hero-media {
  display:none;
}
@media (max-width:767px) {
  .contact-form-section {
    padding:58px 0;
  }
  .contact-form-section .contact-direct {
    grid-template-columns:1fr;
    margin:0 0 24px;
  }
}
/* === Homepage premium v2 (2026-08-26) === */
.hp-home{--green: #059444; --green-bright: #13b85c; --ink: #101311; --muted: #5b625d; --line: #dfe5e1; --surface: #f3f7f4; --white: #fff; --dark: #0b0e0c; --shell: min(1400px,calc(100% - 64px)); --ease: cubic-bezier(.22,.61,.36,1); --shadow: 0 26px 70px rgba(8,32,18,.11);}
.hp-home *{box-sizing: border-box;}
.hp-home{scroll-behavior: smooth;}
.hp-home{margin: 0px; color: var(--ink); background: rgb(255, 255, 255); font-family: Manrope, Arial, sans-serif; font-size: 16px; line-height: 1.6;}
.hp-home body.menu-open{overflow: hidden;}
.hp-home a{color: inherit; text-decoration: none;}
.hp-home button{font: inherit;}
.hp-home img{display: block; max-width: 100%;}
.hp-home .shell{width: var(--shell); margin-inline: auto;}
.hp-home .sr-only,.hp-home .skip-link{position: absolute; width: 1px; height: 1px; padding: 0px; margin: -1px; overflow: hidden; clip: rect(0px, 0px, 0px, 0px); white-space: nowrap; border: 0px;}
.hp-home .skip-link:focus{z-index: 999; top: 12px; left: 12px; width: auto; height: auto; margin: 0px; padding: 10px 14px; clip: auto; background: rgb(255, 255, 255);}
.hp-home .section-space{padding: 132px 0px;}
.hp-home .kicker{display: flex; align-items: center; gap: 12px; margin: 0px 0px 26px; color: var(--green); font-size: 11px; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase;}
.hp-home .kicker::before{width: 30px; height: 1px; background: currentcolor; content: "";}
.hp-home .kicker i{width: 3px; height: 3px; border-radius: 50%; background: currentcolor;}
.hp-home .kicker-light{color: var(--green-bright);}
.hp-home h1,.hp-home h2,.hp-home h3,.hp-home p{margin-top: 0px;}
.hp-home h1,.hp-home h2,.hp-home h3{letter-spacing: -0.05em;}
.hp-home h2{margin-bottom: 0px; font-size: clamp(48px, 5.1vw, 74px); line-height: 0.99; font-weight: 650;}
.hp-home h2 em{color: var(--green); font-style: normal;}
.hp-home .button{display: inline-flex; align-items: center; justify-content: space-between; gap: 28px; min-height: 58px; padding: 0px 24px; border: 1px solid transparent; border-radius: 3px; font-size: 13px; font-weight: 800; transition: transform .25s var(--ease),background .25s var(--ease),color .25s var(--ease),border .25s var(--ease),box-shadow .25s var(--ease);}
.hp-home .button:hover{transform: translateY(-2px);}
.hp-home .button span,.hp-home .text-link span{font-size: 20px; font-weight: 500;}
.hp-home .button-solid{color: rgb(255, 255, 255); background: var(--green);}
.hp-home .button-solid:hover{background: rgb(4, 126, 59); box-shadow: rgba(5, 148, 68, 0.25) 0px 15px 35px;}
.hp-home .button-outline{border-color: rgba(5, 148, 68, 0.6); color: var(--green); background: rgba(255, 255, 255, 0.55);}
.hp-home .button-outline:hover{color: rgb(255, 255, 255); background: var(--green);}
.hp-home .button-greenline{border-color: rgba(19, 184, 92, 0.55); color: rgb(255, 255, 255);}
.hp-home .button-greenline:hover{background: var(--green);}
.hp-home .button-white{color: var(--green); background: rgb(255, 255, 255);}
.hp-home .text-link{display: inline-flex; align-items: center; gap: 20px; padding: 14px 0px; border-bottom: 1px solid; font-size: 13px; font-weight: 800;}
.hp-home .text-link span{transition: transform .25s var(--ease);}
.hp-home .text-link:hover span{transform: translateX(5px);}
.hp-home .site-header{position: fixed; z-index: 100; inset: 0px 0px auto; height: 88px; border-bottom: 1px solid rgba(16, 19, 17, 0.08); background: rgba(255, 255, 255, 0.87); backdrop-filter: blur(18px) saturate(150%); transition: height .3s var(--ease),box-shadow .3s var(--ease),background .3s var(--ease);}
.hp-home .site-header.is-scrolled{height: 72px; background: rgba(255, 255, 255, 0.96); box-shadow: rgba(10, 30, 17, 0.06) 0px 8px 30px;}
.hp-home .header-inner{display: grid; grid-template-columns: 140px 1fr auto; align-items: center; height: 100%; gap: 26px;}
.hp-home .brand img{width: 75px; height: 58px; object-fit: contain;}
.hp-home .main-nav{display: flex; justify-content: center; gap: clamp(18px, 2.2vw, 35px); font-size: 13px; font-weight: 700;}
.hp-home .main-nav a{position: relative; padding: 10px 0px;}
.hp-home .main-nav a::after{position: absolute; inset: auto 100% 4px 0px; height: 2px; background: var(--green); content: ""; transition: inset .25s var(--ease);}
.hp-home .main-nav a:hover::after{}
.hp-home .header-tools{display: flex; align-items: center; gap: 18px;}
.hp-home .languages{display: flex; align-items: center; padding: 4px; border: 1px solid var(--line); border-radius: 3px;}
.hp-home .languages a{display: grid; place-items: center; width: 34px; height: 34px; color: rgb(138, 146, 141); font-size: 11px; font-weight: 800;}
.hp-home .languages a.is-active{color: rgb(255, 255, 255); background: var(--green);}
.hp-home .header-cta{min-height: 48px; padding-inline: 18px;}
.hp-home .menu-toggle{display: none;}
.hp-home .hero{position: relative; display: flex; flex-direction: column; min-height: 100svh; padding-top: 88px; overflow: hidden; background: rgb(245, 248, 246);}
.hp-home .hero-media{position: absolute; z-index: 0; inset: 88px 0px 0px 34%; overflow: hidden;}
.hp-home .hero-media::after{position: absolute; inset: 0px; background: linear-gradient(90deg, rgb(245, 248, 246) 0%, rgba(245, 248, 246, 0.96) 5%, rgba(245, 248, 246, 0.53) 26%, rgba(245, 248, 246, 0.05) 52%, transparent 75%), linear-gradient(0deg, rgba(245, 248, 246, 0.15), rgba(245, 248, 246, 0.15)); content: "";}
.hp-home .hero-media img{width: 100%; height: 100%; object-fit: cover; object-position: 59% center; filter: saturate(0.92) contrast(0.98) brightness(1.05);}
.hp-home .hero-grid,.hp-home .final-cta-grid{position: absolute; z-index: 1; inset: 0px; opacity: 0.58; background-image: linear-gradient(rgba(5, 148, 68, 0.075) 1px, transparent 1px), linear-gradient(90deg, rgba(5, 148, 68, 0.075) 1px, transparent 1px); background-size: 96px 96px; mask-image: linear-gradient(90deg, rgb(0, 0, 0) 0%, transparent 68%);}
.hp-home .hero-inner{position: relative; z-index: 2; display: grid; grid-template-columns: minmax(0px, 620px) 1fr; align-items: center; flex: 1 1 0%; padding: 76px 0px 64px;}
.hp-home .hero-copy{max-width: 610px;}
.hp-home .hero h1{margin: 0px; font-size: clamp(67px, 6.5vw, 104px); font-weight: 650; line-height: 0.9;}
.hp-home .hero h1 em{color: var(--green); font-style: normal;}
.hp-home .hero-lead{max-width: 565px; margin: 36px 0px 34px; color: rgb(56, 65, 59); font-size: 19px; line-height: 1.65;}
.hp-home .hero-actions{display: flex; align-items: center; gap: 30px;}
.hp-home .hero-side-note{place-self: end; width: 310px; margin: 0px 0px 24px; padding: 20px 0px 20px 22px; border-left: 2px solid var(--green); background: linear-gradient(90deg, rgba(255, 255, 255, 0.78), transparent);}
.hp-home .hero-side-note span{color: var(--green); font-size: 10px; font-weight: 800; letter-spacing: 0.13em; text-transform: uppercase;}
.hp-home .hero-side-note p{margin: 8px 0px 0px; font-size: 13px; font-weight: 650; line-height: 1.45;}
.hp-home .hero-bottom{position: relative; z-index: 4; border-top: 1px solid rgba(16, 19, 17, 0.12); background: rgba(255, 255, 255, 0.68); backdrop-filter: blur(15px);}
.hp-home .hero-bottom-inner{display: grid; grid-template-columns: 190px 1fr 190px; align-items: center; min-height: 112px;}
.hp-home .hero-bottom-inner > p{margin: 0px; color: var(--muted); font-size: 11px; font-weight: 700; line-height: 1.45; text-transform: uppercase;}
.hp-home .market-marks{display: grid; grid-template-columns: repeat(5, 1fr); height: 100%;}
.hp-home .market-marks a{display: flex; flex-direction: column; justify-content: center; align-items: center; border-left: 1px solid rgba(16, 19, 17, 0.08); transition: background 0.2s;}
.hp-home .market-marks a:hover{background: rgba(5, 148, 68, 0.055);}
.hp-home .market-marks strong{font-size: 15px; letter-spacing: 0.02em;}
.hp-home .market-marks small{margin-top: 5px; color: rgb(122, 130, 125); font-size: 8px; font-weight: 700; letter-spacing: 0.09em; text-transform: uppercase;}
.hp-home .market-all{display: flex; justify-content: flex-end; gap: 18px; color: var(--green); font-size: 11px; font-weight: 800; text-transform: uppercase;}
.hp-home .market-all span{font-size: 17px;}
.hp-home .section-heading{max-width: 1040px; margin-bottom: 68px;}
.hp-home .section-heading h2 em{display: inline-block;}
.hp-home .entry-list{border-top: 1px solid var(--line);}
.hp-home .entry-item{display: grid; grid-template-columns: 80px minmax(0px, 1fr) 56px; align-items: center; gap: 34px; padding: 36px 10px; border-bottom: 1px solid var(--line); transition: background .3s var(--ease),padding .3s var(--ease);}
.hp-home .entry-item:hover{padding-inline: 28px; background: rgb(244, 248, 245);}
.hp-home .entry-index{align-self: start; padding-top: 8px; color: var(--green); font-size: 11px; font-weight: 800;}
.hp-home .entry-item > div{display: grid; grid-template-columns: minmax(330px, 0.75fr) minmax(350px, 1fr); gap: 70px; align-items: center;}
.hp-home .entry-item h3{margin: 0px; font-size: clamp(26px, 2.3vw, 35px); font-weight: 650; line-height: 1.13;}
.hp-home .entry-item p{max-width: 600px; margin: 0px; color: var(--muted); font-size: 15px;}
.hp-home .entry-arrow{display: grid; place-items: center; width: 48px; height: 48px; border: 1px solid var(--line); font-size: 22px; transition: 0.25s;}
.hp-home .entry-item:hover .entry-arrow{color: rgb(255, 255, 255); border-color: var(--green); background: var(--green); transform: translateX(4px);}
.hp-home .sim-section{position: relative; padding: 150px 0px; overflow: hidden; color: rgb(255, 255, 255); background: var(--dark);}
.hp-home .sim-section::after{position: absolute; right: -12%; bottom: -44%; width: 720px; height: 720px; border: 1px solid rgba(19, 184, 92, 0.1); border-radius: 50%; box-shadow: rgba(19, 184, 92, 0.024) 0px 0px 0px 80px, rgba(19, 184, 92, 0.02) 0px 0px 0px 160px; content: "";}
.hp-home .sim-glow{position: absolute; top: -300px; left: 25%; width: 750px; height: 600px; background: radial-gradient(circle, rgba(5, 148, 68, 0.12), transparent 68%);}
.hp-home .sim-layout{position: relative; z-index: 2; display: grid; grid-template-columns: minmax(360px, 0.8fr) minmax(620px, 1.2fr); gap: 110px; align-items: center;}
.hp-home .sim-intro h2{font-size: clamp(54px, 5vw, 76px);}
.hp-home .sim-intro h2 em{color: var(--green-bright);}
.hp-home .sim-intro > p:not(.kicker){max-width: 570px; margin: 35px 0px 40px; color: rgba(255, 255, 255, 0.66); font-size: 18px; line-height: 1.7;}
.hp-home .sim-console{border: 1px solid rgba(255, 255, 255, 0.1); background: rgb(17, 22, 19); box-shadow: rgba(0, 0, 0, 0.34) 0px 35px 90px;}
.hp-home .sim-console-top{display: flex; justify-content: space-between; padding: 15px 22px; border-bottom: 1px solid rgba(255, 255, 255, 0.08); color: rgba(255, 255, 255, 0.45); font-size: 9px; font-weight: 800; letter-spacing: 0.13em;}
.hp-home .console-status{display: flex; align-items: center; gap: 8px;}
.hp-home .console-status i{width: 7px; height: 7px; border-radius: 50%; background: var(--green-bright); box-shadow: 0 0 12px var(--green-bright);}
.hp-home .sim-tabs{display: grid; grid-template-columns: repeat(3, 1fr); border-bottom: 1px solid rgba(255, 255, 255, 0.08);}
.hp-home .sim-tab{display: flex; align-items: center; gap: 13px; padding: 24px; border-width: 0px 1px 0px 0px; border-style: none solid none none; border-color: currentcolor rgba(255, 255, 255, 0.08) currentcolor currentcolor; border-image: none; color: rgba(255, 255, 255, 0.45); background: transparent; cursor: pointer; text-align: left; transition: 0.25s;}
.hp-home .sim-tab:last-child{border-right: 0px;}
.hp-home .sim-tab b{color: var(--green-bright); font-size: 10px;}
.hp-home .sim-tab span{font-size: 14px; font-weight: 700;}
.hp-home .sim-tab.is-active{color: rgb(255, 255, 255); background: rgba(5, 148, 68, 0.12); box-shadow: inset 0 -2px var(--green-bright);}
.hp-home .sim-panel{display: grid; grid-template-columns: 100px 1fr; gap: 34px; min-height: 340px; padding: 50px;}
.hp-home .sim-panel-icon{display: grid; place-items: center; width: 84px; height: 84px; border: 1px solid rgba(19, 184, 92, 0.3); border-radius: 50%; color: var(--green-bright); font-size: 40px;}
.hp-home .sim-panel > div > p:first-child{margin: 0px 0px 15px; color: var(--green-bright); font-size: 10px; font-weight: 800; letter-spacing: 0.12em;}
.hp-home .sim-panel h3{max-width: 500px; margin: 0px 0px 18px; font-size: 32px; line-height: 1.1;}
.hp-home .sim-panel > div > p:not(:first-child){max-width: 540px; margin: 0px; color: rgba(255, 255, 255, 0.63); font-size: 15px;}
.hp-home .sim-output{display: flex; gap: 18px; align-items: center; margin-top: 35px; padding-top: 20px; border-top: 1px solid rgba(255, 255, 255, 0.08);}
.hp-home .sim-output span{color: rgba(255, 255, 255, 0.35); font-size: 9px; font-weight: 800; letter-spacing: 0.12em;}
.hp-home .sim-output strong{font-size: 12px; font-weight: 700;}
.hp-home .services-heading{display: grid; grid-template-columns: minmax(0px, 1.4fr) minmax(350px, 0.6fr); gap: 100px; align-items: end; margin-bottom: 70px;}
.hp-home .services-heading h2{max-width: 850px;}
.hp-home .services-heading > p{margin: 0px 0px 5px; color: var(--muted); font-size: 17px;}
.hp-home .services-editorial{display: grid; grid-template-columns: 1.04fr 0.96fr; min-height: 720px; border: 1px solid var(--line);}
.hp-home .service-feature{position: relative; min-height: 720px; overflow: hidden; color: rgb(255, 255, 255); background: rgb(23, 34, 27);}
.hp-home .service-feature img{width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease);}
.hp-home .service-feature-overlay{position: absolute; inset: 0px; background: linear-gradient(0deg, rgba(3, 14, 8, 0.9), rgba(3, 14, 8, 0.08) 64%);}
.hp-home .service-feature-copy{position: absolute; inset: auto 50px 45px;}
.hp-home .service-feature-copy span,.hp-home .knowledge-card span{color: var(--green-bright); font-size: 10px; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase;}
.hp-home .service-feature-copy h3{margin: 13px 0px 14px; font-size: 48px; line-height: 1;}
.hp-home .service-feature-copy p{max-width: 500px; margin: 0px 0px 25px; color: rgba(255, 255, 255, 0.76); font-size: 16px;}
.hp-home .service-feature-copy b{font-size: 12px;}
.hp-home .service-feature:hover img{transform: scale(1.035);}
.hp-home .service-lines{display: grid; grid-template-rows: repeat(5, 1fr);}
.hp-home .service-line{display: grid; grid-template-columns: 44px minmax(0px, 1fr) 28px; align-items: center; gap: 16px; padding: 23px 34px; border-bottom: 1px solid var(--line); transition: 0.25s;}
.hp-home .service-line:last-child{border-bottom: 0px;}
.hp-home .service-line > span{color: var(--green); font-size: 10px; font-weight: 800;}
.hp-home .service-line h3{margin: 0px 0px 6px; font-size: 25px; font-weight: 650; line-height: 1.1;}
.hp-home .service-line p{margin: 0px; color: var(--muted); font-size: 13px;}
.hp-home .service-line b{font-size: 20px; font-weight: 500; transition: transform 0.25s;}
.hp-home .service-line:hover{background: var(--surface);}
.hp-home .service-line:hover b{color: var(--green); transform: translateX(5px);}
.hp-home .services-footer{display: flex; justify-content: flex-end; margin-top: 30px;}
.hp-home .regulation{position: relative; min-height: 850px; overflow: hidden; background: rgb(239, 244, 240);}
.hp-home .regulation-media{position: absolute; inset: 0px 0px 0px 45%; overflow: hidden;}
.hp-home .regulation-media::before{position: absolute; z-index: 2; inset: 0px; background: linear-gradient(90deg, rgb(239, 244, 240) 0%, rgba(239, 244, 240, 0.75) 18%, transparent 56%); content: "";}
.hp-home .regulation-media img{width: 100%; height: 100%; object-fit: cover; object-position: center center;}
.hp-home .regulation-inner{position: relative; z-index: 3; display: grid; grid-template-columns: 180px minmax(0px, 690px); gap: 60px; align-items: center; min-height: 850px;}
.hp-home .regulation-date{align-self: center; padding: 22px 0px; border-top: 1px solid var(--green); border-bottom: 1px solid var(--green); text-align: center;}
.hp-home .regulation-date span{display: block; color: var(--green); font-size: 9px; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase;}
.hp-home .regulation-date strong{display: block; margin: 8px 0px -5px; font-size: 88px; font-weight: 500; line-height: 1;}
.hp-home .regulation-date b{font-size: 13px; letter-spacing: 0.09em;}
.hp-home .regulation-copy h2{font-size: clamp(51px, 4.5vw, 68px);}
.hp-home .regulation-copy > p:not(.kicker){max-width: 650px; margin: 34px 0px 38px; color: rgb(71, 80, 73); font-size: 18px;}
.hp-home .regulation-actions{display: flex; align-items: center; gap: 32px;}
.hp-home .markets-layout{display: grid; grid-template-columns: minmax(360px, 0.72fr) minmax(650px, 1.28fr); gap: 100px; align-items: center;}
.hp-home .markets-copy > p:not(.kicker){max-width: 520px; margin: 34px 0px 38px; color: var(--muted); font-size: 17px;}
.hp-home .market-board{position: relative; min-height: 590px; overflow: hidden; border: 1px solid var(--line); background-color: rgb(245, 248, 246); background-image: linear-gradient(rgba(5, 148, 68, 0.07) 1px, transparent 1px), linear-gradient(90deg, rgba(5, 148, 68, 0.07) 1px, transparent 1px); background-size: 55px 55px;}
.hp-home .market-board::before,.hp-home .market-board::after{position: absolute; border: 1px solid rgba(5, 148, 68, 0.1); border-radius: 50%; content: "";}
.hp-home .market-board::before{width: 520px; height: 520px; left: 110px; top: 34px;}
.hp-home .market-board::after{width: 360px; height: 360px; left: 190px; top: 114px;}
.hp-home .market-origin{position: absolute; z-index: 3; left: 50%; top: 50%; display: grid; place-items: center; width: 86px; height: 86px; border: 1px solid rgba(5, 148, 68, 0.35); border-radius: 50%; background: rgb(255, 255, 255); box-shadow: rgba(5, 148, 68, 0.14) 0px 16px 45px; transform: translate(-50%, -50%);}
.hp-home .market-origin span{color: var(--green); font-size: 29px; font-weight: 800; line-height: 1;}
.hp-home .market-origin small{font-size: 7px; font-weight: 800; text-transform: uppercase;}
.hp-home .market-node{position: absolute; z-index: 4; display: grid; grid-template-columns: 12px 1fr; column-gap: 9px; min-width: 145px; padding: 13px 14px; border: 1px solid rgba(16, 19, 17, 0.1); background: rgba(255, 255, 255, 0.91); box-shadow: rgba(10, 30, 17, 0.06) 0px 12px 30px; transition: 0.25s;}
.hp-home .market-node i{grid-row: 1 / 3; align-self: center; width: 9px; height: 9px; border: 2px solid var(--green); border-radius: 50%;}
.hp-home .market-node strong{font-size: 11px;}
.hp-home .market-node small{color: var(--muted); font-size: 8px;}
.hp-home .market-node:hover{border-color: var(--green); transform: translateY(-3px);}
.hp-home .node-eu{top: 82px; right: 62px;}
.hp-home .node-uk{top: 205px; right: 26px;}
.hp-home .node-us{top: 92px; left: 54px;}
.hp-home .node-ca{top: 250px; left: 28px;}
.hp-home .node-br{bottom: 60px; right: 92px;}
.hp-home .map-line{position: absolute; z-index: 1; left: 50%; top: 50%; height: 1px; background: rgba(5, 148, 68, 0.22); transform-origin: left center;}
.hp-home .line-a{width: 280px; transform: rotate(-34deg);}
.hp-home .line-b{width: 310px; transform: rotate(205deg);}
.hp-home .line-c{width: 250px; transform: rotate(42deg);}
.hp-home .knowledge{padding: 140px 0px; color: rgb(255, 255, 255); background: rgb(16, 19, 17);}
.hp-home .knowledge-heading{margin-bottom: 65px;}
.hp-home .knowledge-heading h2{font-size: clamp(50px, 5vw, 72px);}
.hp-home .knowledge-heading h2 em{color: var(--green-bright);}
.hp-home .knowledge-grid{display: grid; grid-template-columns: 0.8fr 1.2fr; min-height: 560px;}
.hp-home .knowledge-card{position: relative; display: flex; flex-direction: column; justify-content: flex-end; overflow: hidden; padding: 50px; border: 1px solid rgba(255, 255, 255, 0.1);}
.hp-home .knowledge-training{background: linear-gradient(145deg, rgb(18, 47, 32), rgb(13, 23, 17));}
.hp-home .knowledge-training::before{position: absolute; top: -130px; right: -180px; width: 520px; height: 520px; border: 1px solid rgba(19, 184, 92, 0.18); border-radius: 50%; box-shadow: rgba(19, 184, 92, 0.035) 0px 0px 0px 65px, rgba(19, 184, 92, 0.02) 0px 0px 0px 130px; content: "";}
.hp-home .knowledge-resources img{position: absolute; inset: 0px; width: 100%; height: 100%; object-fit: cover; filter: brightness(0.42) saturate(0.7); transition: transform .7s var(--ease);}
.hp-home .knowledge-resources::after{position: absolute; inset: 0px; background: linear-gradient(0deg, rgba(4, 11, 7, 0.95), transparent 75%); content: "";}
.hp-home .knowledge-card > div,.hp-home .knowledge-card > b{position: relative; z-index: 2;}
.hp-home .knowledge-card h3{max-width: 540px; margin: 14px 0px 16px; font-size: 43px; line-height: 1.08;}
.hp-home .knowledge-card p{max-width: 560px; color: rgba(255, 255, 255, 0.65); font-size: 15px;}
.hp-home .knowledge-card > b{margin-top: 30px; font-size: 12px;}
.hp-home .knowledge-card:hover img{transform: scale(1.035);}
.hp-home .articles{display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 45px; border-top: 1px solid rgba(255, 255, 255, 0.12); border-bottom: 1px solid rgba(255, 255, 255, 0.12);}
.hp-home .articles a{display: grid; grid-template-columns: 1fr 20px; gap: 10px; padding: 28px; border-right: 1px solid rgba(255, 255, 255, 0.12);}
.hp-home .articles a:last-child{border-right: 0px;}
.hp-home .articles span{grid-column: 1 / 3; color: var(--green-bright); font-size: 9px; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase;}
.hp-home .articles strong{font-size: 14px;}
.hp-home .articles b{font-size: 18px; font-weight: 400;}
.hp-home .articles a:hover{background: rgba(255, 255, 255, 0.035);}
.hp-home .final-cta{position: relative; min-height: 710px; display: grid; place-items: center; overflow: hidden; color: rgb(255, 255, 255); background: var(--green);}
.hp-home .final-cta-grid{opacity: 0.22; mask-image: none; background-image: linear-gradient(rgba(255, 255, 255, 0.18) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, 0.18) 1px, transparent 1px);}
.hp-home .final-cta::after{position: absolute; width: 680px; height: 680px; right: -130px; top: 15px; border: 1px solid rgba(255, 255, 255, 0.18); border-radius: 50%; box-shadow: rgba(255, 255, 255, 0.035) 0px 0px 0px 90px, rgba(255, 255, 255, 0.024) 0px 0px 0px 180px; content: "";}
.hp-home .final-cta-inner{position: relative; z-index: 2; text-align: center;}
.hp-home .final-cta .kicker{justify-content: center; color: rgb(255, 255, 255);}
.hp-home .final-cta h2{font-size: clamp(60px, 6vw, 88px);}
.hp-home .final-cta h2 em{color: rgb(255, 255, 255); font-style: normal;}
.hp-home .final-cta p{max-width: 680px; margin: 32px auto 40px; color: rgba(255, 255, 255, 0.82); font-size: 18px;}
.hp-home .final-cta .button{min-width: 275px;}
.hp-home .site-footer{padding: 85px 0px 28px; color: rgb(200, 207, 202); background: rgb(10, 12, 11);}
.hp-home .footer-grid{display: grid; grid-template-columns: 1.5fr repeat(2, 0.7fr) 1fr; gap: 70px; padding-bottom: 70px;}
.hp-home .footer-brand img{width: 92px; filter: brightness(0) invert(1);}
.hp-home .footer-brand p{max-width: 300px; margin-top: 20px; color: rgb(137, 144, 139); font-size: 13px;}
.hp-home .footer-grid > div:not(.footer-brand){display: flex; flex-direction: column; gap: 11px;}
.hp-home .footer-grid strong{margin-bottom: 10px; color: rgb(255, 255, 255); font-size: 11px; letter-spacing: 0.09em; text-transform: uppercase;}
.hp-home .footer-grid a,.hp-home .footer-grid p{margin: 0px; color: rgb(157, 164, 159); font-size: 13px;}
.hp-home .footer-grid a:hover{color: rgb(255, 255, 255);}
.hp-home .footer-contact p{margin-top: 10px;}
.hp-home .footer-bottom{display: flex; justify-content: space-between; padding-top: 25px; border-top: 1px solid rgba(255, 255, 255, 0.1); color: rgb(117, 124, 119); font-size: 10px; text-transform: uppercase;}
.hp-home .footer-bottom div{display: flex; gap: 24px;}
.hp-home .reveal{opacity: 0; transform: translateY(26px); transition: opacity .7s var(--ease),transform .7s var(--ease);}
.hp-home .reveal.is-visible{opacity: 1; transform: none;}
.hp-home .reveal-delay{transition-delay: 0.12s;}
@media (prefers-reduced-motion: reduce){
.hp-home{scroll-behavior: auto;}
.hp-home .reveal{opacity: 1; transform: none; transition: none;}
.hp-home *{animation: auto ease 0s 1 normal none running none !important; transition: none !important;}
}
@media (max-width: 1180px){
.hp-home{--shell: min(100% - 48px,1100px);}
.hp-home .header-inner{grid-template-columns: 100px 1fr auto;}
.hp-home .main-nav{gap: 17px;}
.hp-home .header-cta{display: none;}
.hp-home .hero-media{left: 43%;}
.hp-home .hero-inner{grid-template-columns: minmax(0px, 560px) 1fr;}
.hp-home .hero-side-note{display: none;}
.hp-home .hero-bottom-inner{grid-template-columns: 150px 1fr 150px;}
.hp-home .entry-item > div{grid-template-columns: 1fr 1fr; gap: 35px;}
.hp-home .sim-layout{grid-template-columns: 1fr; gap: 70px;}
.hp-home .sim-intro{max-width: 760px;}
.hp-home .services-heading{grid-template-columns: 1fr; gap: 28px;}
.hp-home .services-heading > p{max-width: 700px;}
.hp-home .markets-layout{grid-template-columns: 1fr; gap: 65px;}
.hp-home .markets-copy{max-width: 700px;}
.hp-home .market-board{min-height: 560px;}
}
@media (max-width: 850px){
.hp-home{--shell: calc(100% - 38px);}
.hp-home .section-space{padding: 92px 0px;}
.hp-home .site-header{height: 74px;}
.hp-home .header-inner{grid-template-columns: 1fr auto;}
.hp-home .brand img{width: 68px; height: 52px;}
.hp-home .menu-toggle{display: grid; gap: 5px; width: 46px; height: 46px; padding: 11px; border: 1px solid var(--line); background: rgb(255, 255, 255);}
.hp-home .menu-toggle span:not(.sr-only){display: block; height: 2px; background: var(--ink); transition: 0.25s;}
.hp-home .menu-toggle[aria-expanded="true"] span:nth-child(1){transform: translateY(7px) rotate(45deg);}
.hp-home .menu-toggle[aria-expanded="true"] span:nth-child(2){opacity: 0;}
.hp-home .menu-toggle[aria-expanded="true"] span:nth-child(3){transform: translateY(-7px) rotate(-45deg);}
.hp-home .main-nav{position: fixed; inset: 74px 0px auto; display: none; flex-direction: column; gap: 0px; padding: 24px; background: rgb(255, 255, 255); border-top: 1px solid var(--line); box-shadow: rgba(0, 0, 0, 0.12) 0px 30px 60px;}
.hp-home .main-nav.is-open{display: flex;}
.hp-home .main-nav a{padding: 15px 0px; border-bottom: 1px solid var(--line); font-size: 17px;}
.hp-home .header-tools{display: none;}
.hp-home .hero{padding-top: 74px; min-height: auto;}
.hp-home .hero-media{inset: 74px 0px auto; height: 480px;}
.hp-home .hero-media::after{background: linear-gradient(0deg, rgb(245, 248, 246) 0%, rgba(245, 248, 246, 0.1) 70%), linear-gradient(90deg, rgba(245, 248, 246, 0.35), transparent);}
.hp-home .hero-inner{display: block; padding: 370px 0px 60px;}
.hp-home .hero-copy{padding: 34px 0px 0px;}
.hp-home .hero h1{font-size: clamp(54px, 14vw, 75px);}
.hp-home .hero-lead{font-size: 17px;}
.hp-home .hero-actions{align-items: stretch; flex-direction: column; max-width: 360px;}
.hp-home .hero-actions .text-link{width: max-content;}
.hp-home .hero-bottom-inner{display: block; padding: 24px 0px;}
.hp-home .hero-bottom-inner > p{margin-bottom: 20px;}
.hp-home .market-marks{grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line);}
.hp-home .market-marks a{min-height: 76px; border-bottom: 1px solid var(--line);}
.hp-home .market-all{justify-content: flex-start; margin-top: 20px;}
.hp-home .section-heading{margin-bottom: 44px;}
.hp-home .entry-item{grid-template-columns: 38px 1fr 38px; gap: 12px; padding: 28px 0px;}
.hp-home .entry-item:hover{padding-inline: 0px;}
.hp-home .entry-item > div{display: block;}
.hp-home .entry-item h3{font-size: 25px;}
.hp-home .entry-item p{margin-top: 12px; font-size: 14px;}
.hp-home .entry-arrow{width: 36px; height: 36px;}
.hp-home .sim-section{padding: 100px 0px;}
.hp-home .sim-tabs{grid-template-columns: 1fr;}
.hp-home .sim-tab{border-right: 0px; border-bottom: 1px solid rgba(255, 255, 255, 0.08);}
.hp-home .sim-panel{grid-template-columns: 1fr; padding: 35px 26px;}
.hp-home .sim-panel-icon{width: 66px; height: 66px;}
.hp-home .services-editorial{grid-template-columns: 1fr;}
.hp-home .service-feature{min-height: 560px;}
.hp-home .service-lines{grid-template-rows: auto;}
.hp-home .service-line{min-height: 125px;}
.hp-home .regulation{min-height: auto; padding: 100px 0px;}
.hp-home .regulation-media{inset: 45% 0px 0px; opacity: 0.36;}
.hp-home .regulation-media::before{background: linear-gradient(0deg, transparent, rgb(239, 244, 240));}
.hp-home .regulation-inner{display: block; min-height: 770px;}
.hp-home .regulation-date{width: 150px; margin-bottom: 45px;}
.hp-home .regulation-copy{max-width: 660px;}
.hp-home .market-board{min-height: 520px;}
.hp-home .knowledge-grid{grid-template-columns: 1fr;}
.hp-home .knowledge-card{min-height: 460px;}
.hp-home .articles{grid-template-columns: 1fr;}
.hp-home .articles a{border-right: 0px; border-bottom: 1px solid rgba(255, 255, 255, 0.12);}
.hp-home .articles a:last-child{border-bottom: 0px;}
.hp-home .footer-grid{grid-template-columns: 1fr 1fr;}
.hp-home .footer-brand,.hp-home .footer-contact{grid-column: 1 / -1;}
}
@media (max-width: 560px){
.hp-home{--shell: calc(100% - 32px);}
.hp-home{font-size: 15px;}
.hp-home .section-space{padding: 78px 0px;}
.hp-home h2{font-size: 42px;}
.hp-home .hero-media{height: 360px;}
.hp-home .hero-inner{padding-top: 280px;}
.hp-home .hero h1{font-size: 52px;}
.hp-home .hero-lead{margin: 25px 0px; font-size: 16px;}
.hp-home .hero .button{width: 100%;}
.hp-home .market-marks{grid-template-columns: 1fr 1fr;}
.hp-home .section-heading h2 br{display: none;}
.hp-home .entry-item{grid-template-columns: 28px 1fr;}
.hp-home .entry-arrow{display: none;}
.hp-home .sim-section{padding: 82px 0px;}
.hp-home .sim-intro h2{font-size: 44px;}
.hp-home .sim-intro h2 br{display: none;}
.hp-home .sim-panel h3{font-size: 27px;}
.hp-home .service-feature{min-height: 520px;}
.hp-home .service-feature-copy{inset: auto 24px 28px;}
.hp-home .service-feature-copy h3{font-size: 37px;}
.hp-home .service-line{grid-template-columns: 32px 1fr 20px; padding: 23px 18px;}
.hp-home .service-line h3{font-size: 22px;}
.hp-home .regulation{padding: 80px 0px;}
.hp-home .regulation-inner{min-height: 790px;}
.hp-home .regulation-date strong{font-size: 68px;}
.hp-home .regulation-copy h2{font-size: 42px;}
.hp-home .regulation-actions{align-items: stretch; flex-direction: column;}
.hp-home .regulation-actions .text-link{width: max-content;}
.hp-home .markets-layout{gap: 48px;}
.hp-home .market-board{min-height: 610px;}
.hp-home .market-board::before,.hp-home .market-board::after,.hp-home .map-line{display: none;}
.hp-home .market-origin{display: none;}
.hp-home .market-node{min-width: 0px; left: 25px !important; right: 25px !important;}
.hp-home .node-us{top: 30px;}
.hp-home .node-ca{top: 137px;}
.hp-home .node-eu{top: 244px;}
.hp-home .node-uk{top: 351px;}
.hp-home .node-br{top: 458px; bottom: auto;}
.hp-home .knowledge{padding: 86px 0px;}
.hp-home .knowledge-heading h2{font-size: 42px;}
.hp-home .knowledge-card{min-height: 430px; padding: 28px;}
.hp-home .knowledge-card h3{font-size: 34px;}
.hp-home .final-cta{min-height: 650px;}
.hp-home .final-cta h2{font-size: 48px;}
.hp-home .footer-grid{grid-template-columns: 1fr; gap: 42px;}
.hp-home .footer-brand,.hp-home .footer-contact{grid-column: auto;}
.hp-home .footer-bottom{align-items: flex-start; flex-direction: column; gap: 16px;}
}
.hp-home .hero-inner{grid-template-columns: minmax(0px, 620px) 1fr;}
.hp-home .regulation-media img{object-position: 63% center; filter: saturate(0.85) contrast(0.96) brightness(1.04);}
.hp-home .market-board{background: rgb(244, 248, 245);}
.hp-home .market-board::before,.hp-home .market-board::after{display: none;}
.hp-home .world-map{position: absolute; z-index: 0; inset: 24px; width: calc(100% - 48px); height: calc(100% - 48px);}
.hp-home .world-map path{fill: rgba(5, 148, 68, 0.067); stroke: rgba(5, 148, 68, 0.22); stroke-width: 2; transition: fill .28s var(--ease),stroke .28s var(--ease),transform .28s var(--ease); transform-box: fill-box; transform-origin: center center;}
.hp-home .world-map path.is-active{fill: rgba(5, 148, 68, 0.25); stroke: var(--green); transform: scale(1.025);}
.hp-home .market-node:hover,.hp-home .market-node:focus-visible{z-index: 8; outline: none; box-shadow: rgba(5, 148, 68, 0.14) 0px 17px 36px;}
.hp-home .knowledge-training-media{position: absolute; inset: 0px; width: 100%; height: 100%; object-fit: cover; object-position: 63% center; filter: brightness(0.42) saturate(0.78); transition: transform .7s var(--ease);}
.hp-home .knowledge-training::after{position: absolute; inset: 0px; background: linear-gradient(0deg, rgba(4, 11, 7, 0.96), rgba(4, 11, 7, 0.18) 76%); content: "";}
.hp-home .knowledge-training::before{display: none;}
.hp-home .knowledge-training:hover .knowledge-training-media{transform: scale(1.035);}
.hp-home .site-footer{color: rgb(79, 87, 81); background: rgb(255, 255, 255); border-top: 1px solid var(--line);}
.hp-home .footer-brand img{filter: none;}
.hp-home .footer-brand p,.hp-home .footer-grid a,.hp-home .footer-grid p{color: rgb(105, 113, 108);}
.hp-home .footer-grid strong{color: var(--ink);}
.hp-home .footer-grid a:hover{color: var(--green);}
.hp-home .footer-bottom{border-top-color: var(--line); color: rgb(123, 131, 126);}
@media (min-width: 1181px){
.hp-home .services.section-space{display: flex; align-items: center; min-height: calc(-72px + 100svh); padding: 42px 0px;}
.hp-home .services-heading{gap: 70px; margin-bottom: 24px;}
.hp-home .services-heading h2{font-size: clamp(44px, 3.8vw, 55px);}
.hp-home .services-heading > p{font-size: 14px; line-height: 1.55;}
.hp-home .services-editorial{min-height: 0px; height: 390px;}
.hp-home .service-feature{min-height: 0px; height: 390px;}
.hp-home .service-feature-copy{inset: auto 36px 30px;}
.hp-home .service-feature-copy h3{font-size: 39px;}
.hp-home .service-feature-copy p{margin-bottom: 16px; font-size: 14px;}
.hp-home .service-line{padding: 12px 28px;}
.hp-home .service-line h3{margin-bottom: 3px; font-size: 21px;}
.hp-home .service-line p{font-size: 11px;}
.hp-home .services-footer{margin-top: 14px;}
.hp-home .services-footer .text-link{padding: 8px 0px;}
.hp-home .knowledge{display: flex; align-items: center; min-height: calc(-72px + 100svh); padding: 42px 0px;}
.hp-home .knowledge-heading{margin-bottom: 24px;}
.hp-home .knowledge-heading h2{font-size: clamp(43px, 3.8vw, 55px);}
.hp-home .knowledge-grid{min-height: 0px; height: 350px;}
.hp-home .knowledge-card{padding: 34px;}
.hp-home .knowledge-card h3{margin: 10px 0px; font-size: 34px;}
.hp-home .knowledge-card p{margin-bottom: 0px; font-size: 13px;}
.hp-home .knowledge-card > b{margin-top: 18px;}
.hp-home .articles{margin-top: 20px;}
.hp-home .articles a{padding: 17px 22px;}
.hp-home .articles strong{font-size: 12px;}
}
@media (max-width: 850px){
.hp-home .world-map{display: none;}
.hp-home .knowledge-training-media{object-position: 68% center;}
.hp-home .site-footer{padding-top: 68px;}
}
@media (max-width: 850px){
.hp-home{--shell: calc(100% - 32px);}
.hp-home{line-height: 1.55;}
.hp-home .section-space{padding: 76px 0px;}
.hp-home .site-header,.hp-home .site-header.is-scrolled{height: 68px;}
.hp-home .brand img{width: 61px; height: 46px;}
.hp-home .menu-toggle{width: 43px; height: 43px;}
.hp-home .main-nav{inset: 68px 0px auto; padding: 16px 20px 24px;}
.hp-home .main-nav a{padding: 13px 0px; font-size: 16px;}
.hp-home .hero{padding-top: 68px;}
.hp-home .hero-media{inset: 68px 0px auto; height: 330px;}
.hp-home .hero-media img{object-position: 65% center;}
.hp-home .hero-inner{padding: 248px 0px 48px;}
.hp-home .hero-copy{padding-top: 28px;}
.hp-home .hero .kicker{margin-bottom: 18px; font-size: 9px; letter-spacing: 0.1em;}
.hp-home .hero h1{font-size: clamp(47px, 13vw, 60px); line-height: 0.94;}
.hp-home .hero-lead{margin: 22px 0px 26px; font-size: 15px; line-height: 1.58;}
.hp-home .hero-actions{gap: 12px; max-width: none;}
.hp-home .hero-actions .button{width: 100%; min-height: 56px;}
.hp-home .hero-actions .text-link{align-self: flex-start; padding-block: 11px;}
.hp-home .hero-bottom-inner{padding: 20px 0px 24px;}
.hp-home .hero-bottom-inner > p{margin-bottom: 16px;}
.hp-home .market-marks{grid-template-columns: 1fr 1fr;}
.hp-home .market-marks a{min-height: 68px; border-right: 1px solid var(--line);}
.hp-home .market-marks a:nth-child(4){display: none;}
.hp-home .market-all{margin-top: 17px;}
.hp-home .section-heading{margin-bottom: 34px;}
.hp-home .section-heading h2{font-size: clamp(39px, 10.8vw, 47px); line-height: 1.02;}
.hp-home .entry-item{padding: 24px 0px;}
.hp-home .entry-item h3{font-size: 23px;}
.hp-home .entry-item p{margin-top: 9px; font-size: 13px;}
.hp-home .sim-section{padding: 76px 0px;}
.hp-home .sim-layout{gap: 46px;}
.hp-home .sim-intro h2{font-size: 42px;}
.hp-home .sim-intro > p:not(.kicker){margin: 24px 0px 28px; font-size: 16px;}
.hp-home .sim-intro .button{width: 100%;}
.hp-home .sim-tab{padding: 17px 19px;}
.hp-home .sim-panel{min-height: 0px; padding: 28px 21px;}
.hp-home .sim-panel h3{font-size: 25px;}
.hp-home .sim-output{align-items: flex-start; flex-direction: column; gap: 5px; margin-top: 24px;}
.hp-home .services-heading{margin-bottom: 32px;}
.hp-home .services-heading h2{font-size: 42px;}
.hp-home .services-heading > p{font-size: 15px;}
.hp-home .services-editorial{min-height: 0px;}
.hp-home .service-feature{min-height: 430px;}
.hp-home .service-feature-copy{inset: auto 23px 25px;}
.hp-home .service-feature-copy h3{font-size: 35px;}
.hp-home .service-feature-copy p{font-size: 14px;}
.hp-home .service-line{min-height: 96px; padding: 18px 16px;}
.hp-home .service-line h3{font-size: 21px;}
.hp-home .service-line p{font-size: 12px;}
.hp-home .services-footer{justify-content: flex-start; margin-top: 20px;}
.hp-home .regulation{padding: 74px 0px;}
.hp-home .regulation-media{inset: 49% 0px 0px; opacity: 0.34;}
.hp-home .regulation-inner{min-height: 690px;}
.hp-home .regulation-date{width: 128px; margin-bottom: 32px; padding: 15px 0px;}
.hp-home .regulation-date strong{font-size: 62px;}
.hp-home .regulation-copy h2{font-size: 40px;}
.hp-home .regulation-copy > p:not(.kicker){margin: 25px 0px 28px; font-size: 15px;}
.hp-home .markets-layout{gap: 40px;}
.hp-home .markets-copy h2{font-size: 43px;}
.hp-home .markets-copy > p:not(.kicker){margin: 24px 0px 28px; font-size: 15px;}
.hp-home .markets-copy .button{width: 100%;}
.hp-home .market-board{min-height: 468px;}
.hp-home .market-node{min-height: 78px; padding: 14px 16px; left: 18px !important; right: 18px !important;}
.hp-home .market-node strong{font-size: 12px;}
.hp-home .node-us{top: 18px;}
.hp-home .node-eu{top: 119px;}
.hp-home .node-uk{top: 220px;}
.hp-home .node-br{top: 321px; bottom: auto;}
.hp-home .node-ca{display: none;}
.hp-home .knowledge{padding: 76px 0px;}
.hp-home .knowledge-heading{margin-bottom: 34px;}
.hp-home .knowledge-heading h2{font-size: 41px;}
.hp-home .knowledge-card{min-height: 395px; padding: 25px;}
.hp-home .knowledge-card h3{font-size: 32px;}
.hp-home .knowledge-card p{font-size: 13px;}
.hp-home .articles{margin-top: 24px;}
.hp-home .articles a{padding: 20px 18px;}
.hp-home .final-cta{min-height: 600px; padding: 70px 0px;}
.hp-home .final-cta h2{font-size: 45px;}
.hp-home .final-cta p{margin: 25px auto 30px; font-size: 15px;}
.hp-home .final-cta .button{width: 100%;}
.hp-home .footer-grid{gap: 36px; padding-bottom: 48px;}
.hp-home .footer-bottom{gap: 14px; padding-top: 20px;}
}
/* === Fine homepage premium v2 === */
