/* Shared type roles, loaded after page-specific legacy layouts.
   Keep reading sizes stable; scale the hierarchy instead of the whole page. */
:root{
  --type-hero:clamp(36px,3.2vw,48px);
  --type-section:clamp(30px,2.5vw,38px);
  --type-subheading:clamp(22px,1.7vw,26px);
  --type-card:clamp(20px,1.4vw,22px);
  --type-body:clamp(16px,1.08vw,18px);
  --type-lead:clamp(18px,1.25vw,20px);
  --type-caption:14px;
}
.nuxt-page-shell :is(main,section) h1{font-size:var(--type-hero)!important;line-height:1.18!important;letter-spacing:normal!important}
.nuxt-page-shell :is(main,section) h2{font-size:var(--type-section)!important;line-height:1.25!important;letter-spacing:normal!important}
.nuxt-page-shell :is(main,section) h3{font-size:var(--type-card)!important;line-height:1.35!important}
.nuxt-page-shell :is(main,section) h4{font-size:18px!important;line-height:1.4!important}
.nuxt-page-shell main p{font-size:var(--type-body)!important;line-height:1.55!important}
.nuxt-page-shell main :is(small,time){font-size:var(--type-caption)!important;line-height:1.5!important}
.nuxt-page-shell :is(h1,h2,h3,h4){overflow-wrap:break-word}
.nuxt-page-shell :is(h1,h2,h3,h4)>a{font:inherit!important}
.nuxt-page-shell :is(.hero-content,.hero-copy,.detail-hero-copy,.industry-detail-hero__content)>p,
.nuxt-page-shell .solution-hero-summary{font-size:var(--type-lead)!important;line-height:1.5!important}
.nuxt-page-shell main :is(.eyebrow,.industry-detail-kicker,.privacy-kicker,.event-date,.partner-event-date,.article-meta,.detail-meta){font-size:var(--type-caption)!important;line-height:1.5!important}
.nuxt-page-shell :is(.quality-card,.product-card,.compare-scroll) h2{font-size:var(--type-card)!important}
.nuxt-page-shell :is(.overview-copy,.contact-card,.partner-form-card) h2{font-size:var(--type-subheading)!important}
.nuxt-page-shell :is(.privacy-article,.article-detail-body,.event-article-copy) h2{font-size:var(--type-subheading)!important}
.nuxt-page-shell :is(.position-preview,.faq-detail,.industry-solution-panel,.industry-application-feature) h3{font-size:var(--type-subheading)!important}
.nuxt-page-shell :is(.position-filter-group,.faq-categories) h3{font-size:16px!important}
.nuxt-page-shell .value-tabs button{font-size:var(--type-section)!important;line-height:1.25!important}
.nuxt-page-shell .value-tabs button.active{font-size:var(--type-section)!important}
.nuxt-page-shell .stats span{font-size:16px!important;line-height:1.5!important}
.nuxt-page-shell .about-stat p{font-size:16px!important;line-height:1.5!important}

/* Text actions have a consistent readable label. Icon-only arrows retain
   their own geometry and icon styles. */
.nuxt-page-shell :is(.button,.pill,.shared-cta-actions a,.industry-detail-actions a,
  .industry-detail-section-head>a,.industry-solution-panel a,.industry-application-feature a,
  .events-grid a,.application-column a,.other-products,.head-actions a,.head-single a,
  .partner-submit,.contact-card .submit){font-size:14px!important;line-height:1.35!important;min-height:44px!important}
.nuxt-page-shell :is(.filters,.resource-filters,.case-categories,.industry-tabs,.product-series-tabs) button{
  font-size:16px!important;line-height:1.4!important;
}
.nuxt-page-shell :is(.faq-list,.compliance-item) button{font-size:18px!important;line-height:1.4!important}
.nuxt-page-shell footer :is(p,a,li,span){font-size:14px!important;line-height:1.55!important}
.nuxt-page-shell footer :is(h3,h4,strong){font-size:16px!important;line-height:1.4!important}
.nuxt-page-shell .global-mega-column h3{font-size:16px!important;line-height:1.4!important}

/* Forms may grow vertically. A short viewport must never shrink labels or
   inputs below a comfortable reading/touch size. */
.nuxt-page-shell :is(.contact-card,.partner-form-card) :is(label,legend){font-size:15px!important;line-height:1.4!important}
.nuxt-page-shell :is(.contact-card,.partner-form-card) :is(input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea){
  min-height:44px!important;font-size:16px!important;line-height:1.4!important;
}
.nuxt-page-shell :is(.contact-card .field-grid,.partner-field-grid){row-gap:12px!important;grid-template-columns:repeat(2,minmax(0,1fr))!important}
.nuxt-page-shell :is(.contact-card .consent,.partner-consent){font-size:14px!important;line-height:1.5!important;align-items:flex-start!important;margin-top:16px!important}
.nuxt-page-shell :is(.contact-card,.partner-form-card) input:is([type=checkbox],[type=radio]){flex-shrink:0}
.nuxt-page-shell .contact-card .field-grid textarea{height:88px!important}
.nuxt-page-shell .contact-card .file-field .file-drop{height:auto!important;min-height:52px!important;font-size:14px!important;line-height:1.5!important}
.nuxt-page-shell .contact-tabs{height:64px!important}
.nuxt-page-shell .contact-tabs button{height:58px!important;padding:10px 12px!important;font-size:14px!important;line-height:1.35!important;align-items:center!important}
.nuxt-page-shell .contact-tabs button.active{height:64px!important;margin-top:0!important}
.nuxt-page-shell .contact-card{padding-top:24px!important;padding-bottom:24px!important}
.nuxt-page-shell .contact-card h2{margin-bottom:20px!important}
.nuxt-page-shell .partner-form-intro{margin:12px auto 24px!important}

/* Card copy uses actual line clamping, and the card grows to include it. */
.nuxt-page-shell .blog-grid{align-items:stretch!important}
.nuxt-page-shell .blog-grid .blog-card{height:100%!important;min-height:0!important}
.nuxt-page-shell .blog-grid .blog-card h3{line-height:1.35!important;max-height:none!important}
.nuxt-page-shell .blog-grid .blog-card p{font-size:16px!important;line-height:1.5!important;max-height:none!important;margin-top:12px!important}
.nuxt-page-shell .blog-grid .blog-card small{font-size:14px!important;line-height:1.5!important}
.nuxt-page-shell :is(.blog-card,.download-card,.events-grid article,.partner-event-card){min-width:0}
.nuxt-page-shell .partner-event-description{line-height:1.5!important}
.nuxt-page-shell .partner-event-card{height:auto;min-height:420px}
.nuxt-page-shell .service-cases .case-card>div{height:auto!important;min-height:0!important}
.nuxt-page-shell .service-cases .case-card p{width:auto!important;max-width:calc(100% - 24px)!important;margin-top:12px!important}
.nuxt-page-shell .service-cases .case-card h3{white-space:normal!important;display:-webkit-box!important;-webkit-box-orient:vertical!important;-webkit-line-clamp:2!important;overflow:hidden!important}
.nuxt-page-shell .solution-case-card b{font-size:var(--type-card)!important;line-height:1.35!important;height:auto!important}
.nuxt-page-shell .service-cases .case-card h3{font-size:20px!important;line-height:1.35!important}
.nuxt-page-shell .service-cases .case-card p{font-size:16px!important;line-height:1.5!important}
.nuxt-page-shell .solution-case-heading>a{font-size:14px!important;min-height:44px!important}
.nuxt-page-shell .industry-object-tabs button{font-size:14px!important;line-height:1.4!important}
.nuxt-page-shell .industry-solution-row>button{font-size:16px!important;line-height:1.4!important}
.nuxt-page-shell .compliance{height:auto!important;min-height:0!important}
.nuxt-page-shell .compliance-item.open>div{max-height:none!important}

@media(max-width:900px){
  :root{--type-hero:36px;--type-section:30px;--type-subheading:24px;--type-card:20px;--type-body:16px;--type-lead:18px}
  .nuxt-page-shell :is(.section-head,.cases-heading,.case-heading,.cases-head,.sd-section-head,.industry-detail-section-head){flex-wrap:wrap!important;gap:20px!important}
  .nuxt-page-shell :is(.section-head,.cases-heading,.case-heading,.cases-head,.sd-section-head,.industry-detail-section-head)>*{max-width:100%!important;min-width:0}
  .nuxt-page-shell .contact-form-section{min-height:0!important;padding-block:24px!important}
  .nuxt-page-shell .partner-form-card{padding:36px 24px!important}
  .contact-page .nuxt-page-shell .secondary-back{top:14px!important;right:64px!important;left:auto!important;z-index:1001}
}
@media(max-width:600px){
  :root{--type-hero:32px;--type-section:28px;--type-subheading:22px}
  .nuxt-page-shell :is(.contact-card .field-grid,.partner-field-grid){grid-template-columns:minmax(0,1fr)!important;row-gap:16px!important}
  .nuxt-page-shell :is(.contact-card .field-grid,.partner-field-grid) .wide{grid-column:1/-1!important}
  .nuxt-page-shell .contact-card{padding-inline:20px!important}
  .nuxt-page-shell .contact-tabs button{min-width:150px!important;flex-basis:150px!important}
  .nuxt-page-shell .partner-choice{flex-wrap:wrap!important}
  .nuxt-page-shell .partner-choice legend{float:none!important;width:100%!important;margin-bottom:8px!important}
  .nuxt-page-shell .partner-event-card{min-height:0;padding:20px}
  .nuxt-page-shell .resource-filters{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important;overflow:visible!important}
  .nuxt-page-shell .resource-filters>button,.nuxt-page-shell .resource-filters .download-control{width:100%!important;min-width:0!important}
  .nuxt-page-shell .resource-filters button{width:100%!important;min-width:0!important;height:48px!important;padding-inline:12px!important}
  .nuxt-page-shell :is(.hero-content,.hero-copy,.detail-hero-copy){max-width:calc(100vw - 40px)!important}
}
