/* Shared mobile reading and interaction system. Loaded after the page styles.
   Small screens change composition, reading order and disclosure, not just scale. */
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
html.workflow-dialog-open { overflow: hidden; }
select { font: inherit; }
.footer-main { grid-template-areas: "brand offers explore project"; }
.footer-brand { grid-area: brand; }
.footer-project { grid-area: project; }
.footer-offers { grid-area: offers; }
.footer-nav { grid-area: explore; }
.footer-group { min-width: 0; }
.footer-group > .footer-label { display: flex; align-items: center; justify-content: space-between; gap: 16px; list-style: none; cursor: default; }
.footer-group > .footer-label::-webkit-details-marker { display: none; }
.footer-group > .footer-label > svg { display: none; }
.module-disclosure { min-width: 0; }
.module-disclosure > summary { display: none; }
.responsive-index { margin: 0; }
.responsive-index > summary { display: none; }
.study-feature-disclosure > summary { display: none; }
.library-more { display: flex; align-items: center; flex-direction: column; gap: 12px; margin-top: 32px; }
.library-more > p { margin: 0; color: var(--muted); font-size: 13px; }
.menu-label { font-size: 13px; font-weight: 550; }
.contact-page .contact { grid-template-areas: "intro form" "discussion form"; grid-template-rows: auto 1fr; row-gap: 28px; }
.contact-page-intro { grid-area: intro; }
.contact-form-panel { grid-area: form; min-width: 0; }
.contact-discussion { grid-area: discussion; }
.contact-page-intro > p { margin-bottom: 0; }
@media (max-width: 1000px) {
  html.menu-open { overflow: hidden; }
  .footer-main { grid-template-areas: "brand brand" "offers explore" "project project"; }
  .mobile-toggle { width: auto; min-width: 84px; min-height: 46px; gap: 10px; padding-inline: 12px; }
}
@media (min-width: 761px) and (max-width: 1000px) {
  .contact-page .contact { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 28px; }
  .footer-brand > p, .footer-project > p:not(.footer-label), .footer-links a { font-size: 14px; }
  .footer-links a { min-height: 44px; }
  .footer-label { font-size: 12px; }
  .footer-contact, .footer-legal a { font-size: 14px; }
  .friction-list p, .fit-list p, .possibility-body > p, .sector-item p,
  .automation-process-list p, .automation-delivery-list p, .automation-ai-list p,
  .solution-explanation-list p, .solution-module-list p, .solution-delivery-list p,
  .solution-ai-list p, .study-features li, .legal-section p,
  .mission-field-copy > p, .mission-contexts-intro p,
  .mission-contexts-grid dd, .mission-support-grid p { font-size: 15px; line-height: 1.75; }
  .friction-list h3, .fit-list h3 { font-size: 18px; }
  .study-index a, .legal-index nav a { min-height: 44px; font-size: 14px; }
  .automation-tool-row li { font-size: 14px; }
  .contact-page .contact label { font-size: 14px; }
  .contact-page .contact .offer-select { font-size: 16px; }
  .pricing-grid { grid-template-columns: minmax(0, 1fr); }
  .pricing-card { display: grid; grid-template-columns: 1fr 1fr; gap: 0 32px; }
  .pricing-card-heading { grid-column: 1; min-height: 0; }
  .pricing-description { grid-column: 1; min-height: 0; }
  .pricing-features { grid-column: 2; grid-row: 1 / 3; align-self: start; }
  .pricing-actions { grid-column: 1 / -1; grid-template-columns: 1fr 1fr; }
  .pricing-description { font-size: 15px; }
  .pricing-features li { font-size: 14px; }
  .pricing-card .pricing-button, .pricing-card .pricing-more { min-height: 50px; font-size: 14px; }
  .problem { gap: 32px; }
  .study-module-heading.has-illustration { flex-wrap: wrap; }
  .study-module-miniature { flex-basis: 100%; width: min(280px, 100%); max-width: 280px; margin-left: auto; }
}
@media (min-width: 761px) and (max-width: 900px) {
  .problem { grid-template-columns: minmax(0, 1fr); }
  .problem-visual { min-height: 0; aspect-ratio: 16 / 9; }
  .contact-page .contact { grid-template-columns: minmax(0, 1fr); grid-template-areas: "intro" "form" "discussion"; grid-template-rows: auto; }
  .contact-discussion ul { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .mission-heading, .mission-field-grid, .mission-contexts-grid, .mission-proof { grid-template-columns: minmax(0, 1fr); }
  .mission-field figure { max-width: 620px; }
  .mission-field img { height: 420px; }
}
/* The desktop vocabulary stays visible: tabs, framed illustrations and grids. */
.tab-label-short { display: none; }
.sector-item { display: block; }
.sector-disclosure { display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 0 20px; }
.sector-disclosure > summary { display: contents; }
.sector-disclosure .sector-icon { grid-column: 1; grid-row: 1 / 3; }
.sector-disclosure > summary > div, .sector-disclosure > p { grid-column: 2; }
.plan-step { min-width: 0; }
.plan-mobile-track { display: none; }
.plan-step > summary, .compact-detail > summary { display: contents; }
.solution-module-list > li > div { min-width: 0; flex: 1; }
.rail-controls { display: none; }
@media (max-width: 760px) {
  :root { --gutter: clamp(16px, 4.5vw, 24px); --section-space: 44px; }
  html { scroll-padding-top: 80px; }
  body { font-size: 15px; line-height: 1.6; }
  .container { max-width: 620px; }
  main, section, article, figure, form { min-width: 0; }
  main h1 br, main h2 br, main h3 br { display: none; }
  h2, .automation-page .section-heading h2, .automation-section h2,
  .software-page .section-heading h2, .solution-section h2, .offer-faq h2,
  .offer-close h2, .mission-field-copy h2, .mission-proof h2,
  .library-catalogue-heading h2 { font-size: clamp(26px, 7vw, 32px); line-height: 1.2; letter-spacing: -.04em; }
  .section-heading { grid-template-columns: minmax(0, 1fr); gap: 14px; margin-bottom: 24px; }
  .eyebrow, .automation-heading .eyebrow, .solution-heading .eyebrow { margin-bottom: 12px; font-size: 10px; line-height: 1.6; letter-spacing: .08em; }
  .section-intro, .section-heading .section-intro { font-size: 15px; line-height: 1.6; }
  .btn, .btn-small { min-height: 46px; padding: 12px 16px; font-size: 14px; gap: 14px; }
  .btn:hover { transform: none; }
  .text-link { min-height: 44px; font-size: 14px; gap: 12px; }
  .header-inner { min-height: 64px; gap: 16px; }
  .logo { min-height: 44px; }
  .logo-image { width: 136px; }
  .mobile-toggle { min-height: 44px; min-width: 80px; }
  .nav { top: 100%; left: calc(-1 * var(--gutter)); right: calc(-1 * var(--gutter)); max-height: calc(100dvh - 64px); gap: 20px; padding: 8px var(--gutter) max(20px, env(safe-area-inset-bottom)); border-inline: 0; border-radius: 0; }
  .nav-links a { min-height: 52px; padding: 12px 4px; border-bottom: 1px solid var(--line); border-radius: 0; font-size: 17px; }
  .nav .nav-contact { min-height: 46px; font-size: 14px; }
  /* Footer uses the same two directories as desktop, in two readable columns. */
  .footer-inner { padding-top: 28px; }
  .footer-main { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-areas: "brand brand" "offers explore" "project project"; gap: 24px 20px; padding-bottom: 24px; }
  .footer-brand { padding: 0; }
  .footer-brand > p { max-width: 45ch; margin-top: 12px; font-size: 13px; line-height: 1.6; color: #424653; }
  .footer-group { border: 0; }
  .footer-group > .footer-label { min-height: 0; padding: 0; margin-bottom: 10px; color: #282b30; font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; cursor: default; }
  .footer-group > .footer-label > svg { display: none; }
  .footer-links { align-items: stretch; flex-direction: column; gap: 0; padding: 0; }
  .footer-links a { min-height: 44px; padding-block: 8px; color: #424653; font-size: 13px; line-height: 1.5; }
  .footer-project { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 8px 20px; padding-top: 20px; border-top: 1px solid var(--line); }
  .footer-project .footer-label { grid-column: 1; grid-row: 1; align-self: center; margin: 0; font-size: 11px; }
  .footer-project > p:not(.footer-label) { display: none; }
  .footer-contact { align-self: center; min-height: 44px; padding: 4px 0; border: 0; border-bottom: 1px solid #b9bec6; border-radius: 0; background: transparent; color: var(--teal); font-size: 13px; gap: 10px; }
  .footer-bottom { align-items: flex-start; flex-direction: column; gap: 12px; padding-block: 12px max(20px, env(safe-area-inset-bottom)); }
  .footer-bottom small { order: 2; font-size: 11px; }
  .footer-legal { align-items: center; flex-direction: row; flex-wrap: wrap; gap: 0 14px; }
  .footer-legal a { min-height: 44px; font-size: 11px; }
  /* Hero keeps the original product illustration and groups the actions. */
  .hero { padding-block: 28px 20px; gap: 20px; }
  .hero h1 { margin-bottom: 18px; font-size: clamp(33px, 8.7vw, 43px); line-height: 1.1; letter-spacing: -.045em; text-wrap: initial; }
  .hero h1 br { display: block; }
  .hero p { margin-bottom: 18px; font-size: 15px; line-height: 1.6; }
  .hero-actions { display: flex; align-items: center; flex-direction: row; flex-wrap: wrap; gap: 8px 18px; }
  .hero-actions .btn { font-size: 13px; }
  .hero-actions .text-link { font-size: 13px; }
  .hero-note { display: none; }
  .hero-client-proof { width: auto; margin-top: 14px; padding-top: 14px; grid-template-columns: 30px minmax(0, 1fr); gap: 10px; }
  .hero-client-proof > img { width: 30px; height: 30px; }
  .hero-client-details { gap: 2px; }
  .hero-client-rating > strong { font-size: 13px; }
  .hero-client-caption { font-size: 11px; }
  .hero-artwork { margin: 0; }
  .hero-artwork img { max-height: 310px; object-fit: contain; }
  .hero-artwork figcaption { margin: 4px 0 0; font-size: 11px; line-height: 1.5; }
  .scope-strip { gap: 10px; padding-block: 16px; font-size: 12px; }
  .scope-strip > span { font-weight: 550; color: #282b30; }
  .scope-strip > div { flex-direction: row; flex-wrap: wrap; justify-content: flex-start; gap: 8px; }
  .scope-strip > div > span { flex: 1 1 28%; padding: 8px; border: 1px solid var(--line); border-radius: 4px; font-size: 11px; line-height: 1.5; }
  .problem { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .friction-list { margin-top: 20px; }
  .friction-list > div { padding-block: 16px; }
  .friction-list h3 { margin-bottom: 6px; font-size: 17px; }
  .friction-list p { font-size: 14px; line-height: 1.6; }
  .problem-visual { min-height: 0; aspect-ratio: 16 / 9; }
  .visual-caption { left: 18px; bottom: 18px; right: 18px; font-size: 17px; }
  .system-section { padding-block: 32px; }
  .system-layout { gap: 16px; }
  .system-copy p { font-size: 15px; line-height: 1.6; margin-bottom: 14px; }
  .check-list { padding-top: 0; font-size: 14px; line-height: 1.5; }
  .check-list li { position: relative; padding: 6px 0 6px 24px; }
  .check-list li::before { position: absolute; left: 0; margin: 0; }
  .system-artwork { margin: 0; }
  .system-artwork img { max-height: 280px; object-fit: contain; }
  /* Same three tabs as desktop; one clear panel is read at a time. */
  .module-tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 0; border-bottom: 1px solid var(--line); border-radius: 0; overflow: visible; }
  .module-tabs button { min-height: 48px; padding: 10px 4px; border: 0; border-bottom: 2px solid transparent; font-size: 12px; line-height: 1.4; }
  .module-tabs button[aria-selected="true"] { border-left: 0; border-bottom-color: var(--teal); padding-left: 4px; }
  .tab-label-full { display: none; }
  .tab-label-short { display: inline; }
  .module-disclosure { border: 0; }
  .module-disclosure > summary { display: none; }
  .module-panel { grid-template-columns: minmax(0, 1fr); gap: 18px; padding: 22px 0 0; }
  .module-copy h3 { margin-bottom: 14px; font-size: 24px; line-height: 1.25; }
  .module-copy p { margin-bottom: 16px; font-size: 15px; line-height: 1.6; }
  .pill { margin-bottom: 12px; font-size: 10px; }
  .feature-list { margin-block: 16px; font-size: 13px; line-height: 1.5; }
  .feature-list li { padding-block: 10px; }
  .module-footnote, .module-artwork figcaption { font-size: 11px; line-height: 1.5; }
  .module-artwork img { max-height: 220px; object-fit: contain; }
  /* The original card designs stay side by side, with a visible next card. */
  [data-mobile-rail] { display: flex; flex-flow: row nowrap; align-items: stretch; gap: 12px; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scroll-padding-inline: 0; padding: 2px 0 10px; scrollbar-width: thin; scrollbar-color: #6d737c #f5f7f9; }
  [data-mobile-rail] > * { flex: 0 0 88%; width: 88%; min-width: 0; scroll-snap-align: start; scroll-margin-inline: 0; }
  [data-mobile-rail]:focus-visible { outline-offset: 3px; }
  .rail-controls { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 44px; margin-top: 6px; color: #424653; font-size: 12px; }
  .rail-controls > div { display: flex; gap: 8px; }
  .rail-controls button { display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 1px solid var(--line); border-radius: 5px; background: #fdfdfe; color: var(--teal); font: inherit; font-size: 20px; }
  .rail-controls button:disabled { opacity: .4; cursor: default; }
  .possibility-card { display: flex; flex-direction: column; }
  .possibility-artwork { display: block; border: 0; border-bottom: 1px solid var(--line); }
  .possibility-artwork img { height: 160px; object-fit: contain; }
  .possibility-body { padding: 20px; }
  .possibility-body h3 { min-height: 0; margin-bottom: 12px; font-size: 21px; }
  .possibility-body > p { margin-bottom: 18px; font-size: 14px; line-height: 1.6; }
  .possibility-examples { display: flex; flex-wrap: wrap; gap: 4px 0; padding-top: 14px; }
  .possibility-examples li { font-size: 12px; }
  .possibility-examples li:not(:last-child)::after { display: inline; margin-inline: 6px; }
  .possibilities-footer { padding-top: 18px; gap: 14px; }
  .possibilities-footer > p { font-size: 14px; line-height: 1.6; }
  /* Preserve the planning: full-width, aligned bars below each mobile title. */
  .plan-toolbar { flex-direction: row; align-items: center; padding: 14px 16px; gap: 12px; }
  .plan-name { min-width: 0; gap: 8px; font-size: 12px; line-height: 1.45; }
  .plan-heading-icon { flex: 0 0 16px; width: 16px; height: 16px; }
  .plan-view { padding: 3px 6px; border: 1px solid #e5eaf2; border-radius: 4px; background: #fff; color: #8190a4; font-size: 10px; }
  .plan-axis { display: block; min-height: 0; }
  .plan-axis > span, .plan-track { display: none; }
  .plan-scale { display: flex; justify-content: space-between; padding: 8px 16px; border-left: 0; color: #8c98aa; font-family: var(--mono); font-size: 9px; }
  .plan-scale > span:not(:first-child):not(:last-child) { display: none; }
  .plan-rows { padding: 0; }
  .plan-row { display: block; min-height: 0; }
  .plan-row + .plan-row { border-top: 1px solid #eaf0f6; }
  .plan-task { position: relative; display: block; padding: 0; margin: 0; border: 0; }
  .plan-task::before, .plan-task::after, .plan-row:last-child .plan-task::after { display: none; }
  .plan-phase-icon { position: absolute; z-index: 1; display: block; top: 13px; left: 16px; width: 18px; height: 18px; margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; color: #8192a9; pointer-events: none; }
  .plan-step { display: block; width: 100%; }
  .plan-step > summary { display: grid; grid-template-columns: minmax(0, 1fr) 12px; align-items: center; gap: 0 12px; min-height: 64px; padding: 10px 16px; list-style: none; cursor: pointer; -webkit-tap-highlight-color: transparent; }
  .plan-step > summary:active { background: #f7f9fc; }
  .plan-step > summary::-webkit-details-marker { display: none; }
  .plan-step > summary::after { content: ''; grid-column: 2; grid-row: 1; justify-self: center; width: 7px; height: 7px; border-right: 1.5px solid #889ab1; border-bottom: 1.5px solid #889ab1; transform: rotate(45deg); }
  .plan-step[open] > summary::after { transform: rotate(225deg); }
  .plan-step > summary:focus-visible { outline: 2px solid #96b2d4; outline-offset: -4px; border-radius: 6px; }
  .plan-task h3 { margin: 0; padding-left: 28px; color: #394556; font-size: 15px; line-height: 1.45; }
  .plan-step[open] > summary h3 { color: #315d91; }
  .plan-mobile-track { grid-column: 1 / -1; grid-row: 2; display: grid; grid-template-columns: repeat(15, minmax(0, 1fr)); grid-template-rows: auto 14px; align-items: center; gap: 6px 0; height: auto; margin-top: 7px; border-inline: 1px solid transparent; }
  .plan-mobile-track::before { content: ''; grid-column: 1 / -1; grid-row: 2; height: 14px; border-right: 1px solid #edf1f6; background-image: linear-gradient(to right, #edf1f6 1px, transparent 1px); background-size: 20% 100%; }
  .plan-mobile-caption { grid-column: 1 / -1; grid-row: 1; color: #62748c; font-size: 12px; font-weight: 450; line-height: 1.5; }
  .plan-mobile-bar { position: relative; grid-column: var(--start) / span var(--span); grid-row: 2; height: 8px; border: 1px solid #384759; border-radius: 3px; background: #384759; }
  .plan-step[open] .plan-mobile-bar { border-color: #315d91; background: #315d91; }
  .plan-row:last-child .plan-mobile-bar { border-color: #a9bcd3; background: #eaf0f8; }
  .plan-task p { padding: 0 16px 14px 44px; margin: 0; color: #737d8b; font-size: 14px; line-height: 1.65; }
  .plan-note { padding: 13px 16px; font-size: 11px; line-height: 1.6; }
  .case-section { padding-block: 32px; }
  .case-compact { row-gap: 24px; }
  .case-copy h2 { margin-bottom: 14px; font-size: 32px; }
  .case-copy h3 { font-size: 18px; }
  .case-copy p { font-size: 15px; line-height: 1.6; }
  .case-website { min-height: 44px; margin-bottom: 10px; font-size: 13px; }
  .case-benefits { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; border: 0; }
  .case-benefit { padding: 16px; border: 1px solid #e4e7ec; border-radius: 7px; }
  .case-benefit-icon { position: static; margin-bottom: 14px; width: 30px; height: 30px; }
  .case-benefit h3 { margin-bottom: 8px; font-size: 16px; line-height: 1.35; }
  .case-benefit p { font-size: 13px; line-height: 1.55; color: #424653; }
  .case-testimonial { padding: 22px 20px; gap: 18px; }
  .testimonial-header { flex-direction: row; gap: 10px; }
  .testimonial-label { font-size: 9px; }
  .case-testimonial blockquote p { font-size: 16px; line-height: 1.65; }
  .case-testimonial figcaption { flex-direction: row; flex-wrap: wrap; align-items: center; gap: 12px; padding-top: 16px; }
  .testimonial-author strong { font-size: 13px; }
  .testimonial-author > span { font-size: 11px; }
  .testimonial-company { margin: 0; font-size: 13px; }
  /* Full-width mobile disclosures keep opened text readable and leave no grid holes. */
  .sector-directory { grid-template-columns: minmax(0, 1fr); gap: 0; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; }
  .sector-item { padding: 0; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; background: #fff; }
  .sector-item:last-child { border-bottom: 0; }
  .sector-disclosure { display: block; }
  .sector-disclosure > summary { display: grid; grid-template-columns: 32px minmax(0, 1fr) 16px; align-items: center; gap: 12px; min-height: 68px; padding: 14px 16px; list-style: none; cursor: pointer; -webkit-tap-highlight-color: transparent; }
  .sector-disclosure > summary::-webkit-details-marker { display: none; }
  .sector-disclosure > summary > div { grid-column: 2; min-width: 0; }
  .sector-disclosure > summary::after { content: ''; justify-self: center; width: 7px; height: 7px; border-right: 1.5px solid #8393a9; border-bottom: 1.5px solid #8393a9; transform: rotate(45deg); }
  .sector-disclosure > summary:focus-visible { outline-offset: -3px; }
  .sector-disclosure[open] { background: #f8fafd; }
  .sector-disclosure[open] > summary::after { transform: rotate(225deg); border-color: #315f98; }
  .sector-icon { width: 32px; height: 32px; }
  .sector-icon svg { width: 18px; height: 18px; }
  .sector-disclosure .sector-icon { grid-column: 1; grid-row: 1; }
  .sector-disclosure[open] .sector-icon { background: #fff; border-color: #d0dced; color: #315f98; }
  .sector-item h3 { margin-bottom: 0; font-size: 16px; font-weight: 550; line-height: 1.35; text-wrap: wrap; }
  .sector-disclosure[open] h3 { color: #214d83; }
  .sector-trades { display: none; }
  .sector-disclosure[open] .sector-trades { display: block; margin: 5px 0 0; font-size: 12px; line-height: 1.5; }
  .sector-disclosure > p { max-width: none; padding: 0 16px 14px; font-size: 14px; line-height: 1.6; }
  .sectors-footer { gap: 10px; padding-top: 18px; }
  .sectors-footer p { font-size: 12px; }
  .fit-section { padding-block: 32px; }
  .fit-layout { gap: 20px; }
  .fit-list article { padding-block: 16px; gap: 12px; }
  .fit-list h3 { margin-bottom: 6px; font-size: 17px; }
  .fit-list p { font-size: 14px; line-height: 1.6; }
  .pricing-card { padding: 22px 20px; }
  .pricing-card-heading { min-height: 0; padding-bottom: 18px; margin-bottom: 18px; }
  .pricing-kicker { font-size: 10px; margin-bottom: 10px; }
  .pricing-card h3 { font-size: 23px; }
  .pricing-card h3 br { display: block; }
  .pricing-description { min-height: 0; font-size: 14px; line-height: 1.6; margin-bottom: 20px; }
  .pricing-features { gap: 10px; margin-bottom: 22px; }
  .pricing-features li { font-size: 13px; line-height: 1.5; }
  .pricing-actions { gap: 10px; }
  .pricing-card .pricing-button, .pricing-card .pricing-more { min-height: 46px; padding: 12px 14px; font-size: 13px; }
  .pricing-notes { margin-top: 16px; }
  .pricing-notes p { font-size: 12px; line-height: 1.6; }
  .faq, .offer-faq { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .faq > div > p { font-size: 14px; }
  .faq summary, .offer-faq summary { align-items: flex-start; padding-block: 16px; font-size: 15px; line-height: 1.5; gap: 16px; }
  .faq summary::after, .offer-faq summary::after { flex: 0 0 14px; font-size: 18px; }
  .faq details p, .offer-faq details p { padding: 0; font-size: 14px; line-height: 1.65; }
  .contact-section, .offer-close { padding-block: 32px; }
  .landing-contact { gap: 20px; }
  .landing-contact .contact-intro p { font-size: 15px; line-height: 1.6; }
  /* Contact keeps 16px controls for mobile keyboard use, with a shorter preamble. */
  .contact-page { padding-block: 20px 36px; }
  .contact-page .contact { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto; grid-template-areas: "intro" "form" "discussion"; gap: 24px; }
  .contact-back { margin: 0 0 16px; font-size: 12px; }
  .contact-page h1 { margin-bottom: 14px; font-size: 34px; }
  .contact-page-intro > p { margin: 0; font-size: 15px; line-height: 1.6; }
  .contact-form-panel { padding: 22px 18px; }
  .contact-form-panel h2 { font-size: 22px; margin-bottom: 8px; }
  .contact-form-panel > p { font-size: 12px; margin-bottom: 20px; }
  .contact-page .contact form { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .contact-page .contact label { font-size: 14px; }
  .contact-page .contact input, .contact-page .contact textarea, .contact-page .contact .offer-select { min-height: 48px; font-size: 16px; padding: 11px 12px; }
  .contact-page .contact input::placeholder, .contact-page .contact textarea::placeholder { font-size: 13px; color: #6d737c; }
  .contact-page .contact textarea { min-height: 130px; }
  .phone-country { flex-basis: 96px; }
  .phone-country-display { padding-inline: 12px; font-size: 13px; }
  .contact-page .contact .field-hint, .contact-page .contact .field-error,
  .contact-page .contact small, .contact-page .contact .contact-privacy, .message-count { font-size: 11px; line-height: 1.6; }
  .contact-discussion { padding-top: 20px; }
  .contact-discussion h2 { font-size: 18px; line-height: 1.4; }
  .contact-discussion ul { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .contact-discussion strong { font-size: 14px; }
  .contact-discussion li > span { font-size: 13px; }
  /* Offer pages retain their centred hero and diagram language. */
  .offer-back { margin-top: 14px; font-size: 12px; }
  .automation-hero, .solution-hero { padding-top: 18px; }
  .automation-heading, .solution-heading { text-align: center; }
  .automation-heading .eyebrow, .solution-heading .eyebrow { justify-content: center; }
  .automation-heading h1, .solution-heading h1 { margin-bottom: 18px; font-size: clamp(32px, 8.4vw, 40px); line-height: 1.12; }
  .automation-heading h1 > span, .solution-heading h1 > span { display: inline; }
  .automation-heading > p, .solution-heading > p { margin-bottom: 18px; font-size: 15px; line-height: 1.6; }
  .automation-hero-actions, .solution-hero-actions { flex-direction: row; justify-content: center; gap: 10px 18px; }
  .automation-hero-actions .btn, .solution-hero-actions .btn { font-size: 14px; }
  .automation-page .automation-section, .software-page .solution-section, .offer-section { margin-top: 44px; }
  .automation-map, .solution-architecture { margin-top: 24px; }
  .automation-map-canvas, .solution-app-layout { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 18px; padding: 20px 16px; align-items: center; }
  .automation-map-endpoint, .solution-architecture-side { padding: 0; }
  .automation-map-endpoint:first-child, .solution-architecture-side:first-child { grid-column: 1; grid-row: 1; }
  .automation-map-endpoint:last-child, .solution-architecture-side:last-child { grid-column: 1; grid-row: 2; }
  .automation-map-engine, .solution-app-core { grid-column: 2; grid-row: 1 / 3; padding: 16px 12px; }
  .automation-map-label, .solution-architecture-label { font-size: 10px; margin-bottom: 8px; letter-spacing: .04em; }
  .automation-map-endpoint > strong, .solution-architecture-side > strong { font-size: 16px; line-height: 1.35; }
  .automation-map-endpoint > ul, .solution-architecture-side > ul { flex-direction: column; gap: 9px; margin-top: 12px; }
  .automation-map-endpoint li, .solution-architecture-side li { align-items: flex-start; gap: 7px; font-size: 12px; line-height: 1.45; }
  .automation-map-endpoint svg, .solution-architecture-side svg { width: 15px; height: 15px; }
  .automation-map-engine::before, .automation-map-engine::after, .solution-app-core::before, .solution-app-core::after { left: auto; right: 100%; top: 25%; bottom: auto; width: 19px; height: 1px; }
  .automation-map-engine::after, .solution-app-core::after { top: 75%; }
  .automation-map-platforms { flex-direction: column; gap: 8px; margin-bottom: 14px; }
  .automation-map-platforms > .brand-logo, .automation-map-platforms > .brand-n8n { width: 88px; max-width: 100%; height: 24px; }
  .automation-map-engine > strong { font-size: 14px; }
  .automation-map-engine > p { margin-bottom: 12px; font-size: 12px; line-height: 1.45; }
  .automation-map-ia { flex-direction: column; gap: 6px; padding-top: 12px; font-size: 11px; line-height: 1.5; }
  .automation-map figcaption, .solution-architecture figcaption { padding: 12px 16px; font-size: 11px; line-height: 1.55; }
  .solution-app-core { padding: 0; }
  .solution-app-title { padding: 14px 12px; gap: 8px; }
  .solution-app-title svg { width: 18px; height: 18px; }
  .solution-app-title strong { font-size: 14px; }
  .solution-app-core dl { padding: 0 12px; }
  .solution-app-core dl > div { padding-block: 12px; }
  .solution-app-core dt { font-size: 12px; }
  .solution-app-core dd { font-size: 11px; line-height: 1.5; }
  .solution-app-core > span { padding: 12px; font-size: 11px; }
  .solution-erp-heading { padding: 18px; }
  .solution-erp-heading > strong { font-size: 18px; }
  .solution-erp-domains { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .solution-erp-domains > div:nth-child(n) { display: grid; grid-template-columns: 22px minmax(0, 1fr); padding: 16px 12px; gap: 6px 8px; border-right: 1px solid #e4e7ec; border-bottom: 1px solid #e4e7ec; }
  .solution-erp-domains > div:nth-child(2n) { border-right: 0; }
  .solution-erp-domains > div:nth-last-child(-n+2) { border-bottom: 0; }
  .solution-erp-domains svg { width: 20px; height: 20px; grid-column: 1; grid-row: 1; }
  .solution-erp-domains strong { grid-column: 2; grid-row: 1; font-size: 13px; }
  .solution-erp-domains span { grid-column: 1 / -1; font-size: 12px; line-height: 1.5; }
  .solution-erp-foundation { grid-template-columns: minmax(0, 1fr); gap: 8px; padding: 14px 18px; }
  .solution-erp-foundation > span { font-size: 12px; }
  .automation-explanation, .automation-ai-layout, .automation-delivery-layout,
  .solution-explanation, .solution-ai-layout, .solution-delivery-layout { grid-template-columns: minmax(0, 1fr); gap: 22px; }
  .automation-section-intro h2, .solution-section-intro h2 { max-width: none; }
  .automation-section-intro > p, .solution-section-intro > p,
  .automation-process-list p, .solution-explanation-list p, .solution-module-list p,
  .automation-delivery-list p, .solution-delivery-list p { font-size: 14px; line-height: 1.6; }
  .automation-section-intro > .automation-control-note, .solution-section-intro > .solution-side-note { margin-top: 18px; padding-top: 16px; font-size: 12px; }
  .automation-process-list > li, .solution-explanation-list > li, .solution-module-list > li { gap: 12px; padding-block: 16px; }
  .automation-process-list h3, .solution-explanation-list h3, .solution-module-list h3,
  .automation-delivery-list h3, .solution-delivery-list h3 { font-size: 17px; margin-bottom: 8px; }
  .automation-delivery-list > li, .solution-delivery-list > li { padding-block: 16px; }
  .automation-examples-note, .automation-tools-footer { align-items: flex-start; gap: 12px; padding-block: 16px; }
  .automation-examples-note p, .automation-tools-footer p { font-size: 13px; line-height: 1.6; }
  .automation-examples-note .text-link, .automation-tools-footer .text-link { font-size: 13px; }
  .automation-tool-row { grid-template-columns: minmax(0, 1fr); gap: 14px; padding-block: 18px; }
  .automation-tool-row > dt { font-size: 16px; }
  .automation-tool-row ul { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px 12px; }
  .automation-tool-row li { align-items: center; flex-direction: column; gap: 7px; font-size: 12px; text-align: center; line-height: 1.4; }
  .automation-tool-row .brand-icon { width: 24px; height: 24px; }
  .automation-fine-print, .solution-fine-print, .scope-conditions { font-size: 11px; line-height: 1.6; }
  .automation-ai-section, .solution-ai-section { padding-block: 32px; }
  .automation-ai-layout > div > p, .solution-ai-layout > div > p,
  .automation-ai-list p, .solution-ai-list p { font-size: 14px; line-height: 1.6; }
  .automation-ai-list h3, .solution-ai-list h3 { font-size: 17px; }
  .automation-ai-list > li, .solution-ai-list > li { padding-block: 16px; }
  .automation-project, .solution-project { width: 100%; max-width: none; padding: 22px 20px; }
  .automation-project > span, .solution-project > span { margin-bottom: 14px; font-size: 10px; }
  .automation-project > h3, .solution-project > h3 { margin-bottom: 14px; font-size: 24px; }
  .automation-project > p, .solution-project > p { font-size: 14px; line-height: 1.6; }
  .automation-project .btn, .solution-project .btn { min-height: 46px; font-size: 13px; }
  .solution-module-list { grid-template-columns: minmax(0, 1fr); }
  .compact-detail > summary { display: flex; justify-content: space-between; align-items: center; min-height: 44px; gap: 12px; list-style: none; cursor: pointer; }
  .compact-detail > summary::-webkit-details-marker { display: none; }
  .compact-detail > summary::after { content: '+'; flex: 0 0 12px; color: #6d737c; }
  .compact-detail[open] > summary::after { content: '−'; }
  .compact-detail > summary h3 { margin: 0; }
  .compact-detail > p { margin-top: 12px; }
  .solution-client-reference { gap: 12px 16px; padding-block: 20px; margin-top: 24px; }
  .solution-client-reference strong { font-size: 15px; }
  .solution-client-reference p { font-size: 13px; line-height: 1.6; }
  .offer-close-inner { align-items: flex-start; flex-direction: column; gap: 20px; }
  .offer-close p { font-size: 15px; line-height: 1.6; }
  /* Secondary pages use the same shorter rhythm, without changing their look. */
  .mission-section { padding-block: 36px; }
  .mission-hero { padding-top: 28px; }
  .mission-hero h1 { margin-bottom: 20px; font-size: 35px; }
  .mission-hero-bottom { gap: 14px; padding-bottom: 24px; }
  .mission-hero-bottom > p, .mission-heading > p { font-size: 15px; line-height: 1.6; }
  .mission-principle { flex-direction: row; gap: 18px; padding: 24px 20px; }
  .mission-principle p { font-size: 18px; line-height: 1.5; }
  .mission-principle-mark i { width: 8px; height: 28px; }
  .mission-heading { grid-template-columns: minmax(0, 1fr); gap: 14px; margin-bottom: 24px; }
  .mission-outcomes article { padding: 20px; border: 1px solid var(--line); border-radius: 6px; }
  .mission-outcomes article:first-child, .mission-outcomes article:last-child { padding: 20px; border: 1px solid var(--line); }
  .mission-outcome-icon { margin-bottom: 18px; }
  .mission-outcomes h3 { font-size: 21px; margin-bottom: 12px; }
  .mission-outcomes p, .mission-field-copy > p, .mission-contexts-intro p,
  .mission-support-grid p, .mission-proof p, .mission-next p { font-size: 14px; line-height: 1.6; }
  .mission-outcome-note { font-size: 12px; }
  .mission-field img { height: 220px; }
  .mission-field figcaption { font-size: 12px; }
  .mission-field-points > div, .mission-contexts-grid dl > div { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 16px; padding-block: 16px; }
  .mission-field-points strong, .mission-contexts-grid dt { font-size: 13px; }
  .mission-field-points span, .mission-contexts-grid dd { font-size: 13px; line-height: 1.6; }
  .mission-support-grid { gap: 20px; }
  .mission-support-grid h3 { font-size: 18px; }
  .mission-case-link { width: 100%; padding: 20px; }
  .mission-case-link span > span { font-size: 12px; }
  .study-hero { padding-top: 16px; }
  .study-breadcrumb { gap: 8px; margin-bottom: 20px; font-size: 11px; }
  .study-breadcrumb a { min-height: 44px; }
  .study-client { margin-bottom: 18px; }
  .study-hero h1 { max-width: none; margin-bottom: 18px; font-size: 35px; }
  .study-lead { font-size: 15px; line-height: 1.6; }
  .study-hero .btn { min-height: 46px; font-size: 14px; }
  .study-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; padding-top: 20px; }
  .study-facts > div { padding: 0; border: 0; }
  .study-facts > div:last-child { grid-column: 1 / -1; }
  .study-facts dt { font-size: 10px; }
  .study-facts dd { margin-top: 5px; font-size: 13px; }
  .study-facts dd a { min-height: 44px; }
  .study-architecture { margin-top: 24px; padding: 18px 12px; }
  .study-architecture-label, .study-architecture figcaption { font-size: 11px; }
  .study-architecture img { max-height: 320px; object-fit: contain; }
  .study-section { margin-top: 44px; }
  .study-context { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .study-context > div > p { font-size: 14px; line-height: 1.6; }
  .study-scope { padding-block: 32px; }
  .study-index { padding: 0 16px; border: 1px solid var(--line); border-radius: 5px; }
  .study-index nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px; padding-bottom: 12px; }
  .study-index a { min-height: 44px; font-size: 13px; }
  .study-module { padding: 20px 18px; }
  .study-module-heading, .study-module-heading.has-illustration { display: grid; grid-template-columns: 32px minmax(0, 1fr); gap: 12px; }
  .study-module-heading > div { display: contents; }
  .study-module-heading.has-illustration > .study-module-icon { grid-column: 1; grid-row: 1; }
  .study-module-icon { width: 32px; height: 32px; }
  .study-module-label { grid-column: 2; grid-row: 1; margin: 0; align-self: center; font-size: 11px; }
  .study-module h3 { grid-column: 1 / -1; grid-row: 2; font-size: 21px; }
  .study-module-miniature { grid-column: 1 / -1; grid-row: 3; width: 100%; margin: 0; }
  .study-module-intro { margin-top: 16px; font-size: 14px; line-height: 1.6; }
  .study-feature-disclosure { margin-top: 16px; border-top: 1px solid var(--line); }
  .study-feature-disclosure > summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 48px; padding-top: 10px; font-size: 13px; color: var(--teal); list-style: none; cursor: pointer; }
  .study-feature-disclosure > summary::-webkit-details-marker { display: none; }
  .study-feature-disclosure > summary::after { content: '+'; font-size: 18px; }
  .study-feature-disclosure[open] > summary::after { content: '−'; }
  .study-features { grid-template-columns: minmax(0, 1fr); margin-top: 0; gap: 12px; padding-block: 16px; border-top: 0; }
  .study-features li { font-size: 14px; line-height: 1.6; }
  .study-objects-label, .study-objects > div > span { font-size: 11px; }
  .study-feedback-heading { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .study-feedback-heading > p, .study-next p { font-size: 14px; line-height: 1.6; }
  .study-next { padding-block: 32px; }
  .legal-page { padding-block: 16px 36px; }
  .legal-back { margin-bottom: 18px; font-size: 12px; }
  .legal-hero h1 { margin-bottom: 18px; font-size: 34px; }
  .legal-hero > p { font-size: 15px; line-height: 1.6; }
  .legal-meta { gap: 8px 16px; font-size: 11px; }
  .legal-draft-badge { font-size: 11px; }
  .legal-notice { padding: 16px 18px; margin-bottom: 24px; }
  .legal-notice strong { font-size: 14px; }
  .legal-notice p { font-size: 13px; line-height: 1.6; }
  .legal-layout { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .legal-index { position: static; max-height: none; padding: 0 16px; }
  .responsive-index > summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 52px; font-size: 14px; list-style: none; cursor: pointer; }
  .responsive-index > summary::-webkit-details-marker { display: none; }
  .responsive-index > p { display: none; }
  .legal-index nav { display: flex; align-items: stretch; gap: 0; padding-bottom: 12px; }
  .legal-index nav a, .legal-other a { min-height: 44px; font-size: 13px; }
  .legal-other { margin-top: 0; padding-top: 12px; }
  .legal-section { padding-block: 24px; }
  .legal-section h2 { margin-bottom: 16px; font-size: 23px; }
  .legal-section p { font-size: 14px; line-height: 1.7; }
  .legal-details > div { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); padding: 14px 16px; gap: 16px; }
  .legal-details dt { font-size: 12px; }
  .legal-details dd { font-size: 14px; line-height: 1.6; }
  .legal-placeholder { font-size: 12px; }
  .legal-section .legal-note { font-size: 13px; line-height: 1.6; }
  .legal-inventory { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .legal-inventory article { padding: 18px; }
  .legal-inventory h3 { font-size: 17px; }
  .legal-inventory p { font-size: 13px; }
  .legal-table caption { padding: 16px; font-size: 14px; }
  .legal-table th, .legal-table td { padding: 14px 12px; font-size: 13px; line-height: 1.65; overflow-wrap: break-word; }
  .legal-table thead th { font-size: 11px; }
  .legal-table th:first-child { width: 34%; }
  .library-hero { padding-block: 28px; }
  .library-hero h1 { margin-bottom: 18px; font-size: 35px; }
  .library-hero-copy > p { font-size: 15px; line-height: 1.6; margin-bottom: 18px; }
  .library-hero-grid { gap: 24px; }
  .library-hero-actions { gap: 8px 18px; }
  .library-scope { flex-direction: row; flex-wrap: wrap; gap: 8px 18px; margin-top: 20px; padding-top: 16px; font-size: 11px; }
  .library-scope strong { font-size: 13px; }
  .library-demo-heading { padding: 16px 18px; font-size: 12px; }
  .library-demo-flow { padding: 20px 18px 0; }
  .library-demo-step { padding-bottom: 20px; }
  .library-demo-step > div > span { font-size: 10px; }
  .library-demo-step strong { font-size: 14px; }
  .library-demo-step p { font-size: 12px; }
  .library-demo figcaption { font-size: 11px; }
  .library-catalogue { padding-block: 36px; }
  .library-catalogue-heading { gap: 14px; margin-bottom: 24px; }
  .library-catalogue-heading > p { font-size: 14px; line-height: 1.6; }
  .library-tools { padding: 16px; }
  .library-search { font-size: 12px; }
  .library-search-control { min-height: 48px; }
  .library-search input::placeholder { font-size: 13px; }
  .library-filters { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 14px; }
  .library-filter { flex: 1 1 40%; min-height: 44px; padding: 8px 10px; font-size: 12px; }
  .library-filter[data-filter="all"] { flex-basis: 100%; }
  .library-filter > span { font-size: 11px; }
  .library-results-bar { min-height: 52px; }
  .library-results-bar > p, .library-reset { font-size: 12px; }
  .library-reset { min-height: 44px; }
  .workflow-grid { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .workflow-card { padding: 20px; }
  .workflow-artwork { width: calc(100% + 40px); margin: -20px -20px 18px; }
  .workflow-artwork img { height: 150px; object-fit: contain; }
  .workflow-card-meta { flex-direction: row; align-items: center; margin-bottom: 14px; font-size: 10px; }
  .workflow-mode { font-size: 10px; }
  .workflow-card h3 { min-height: 0; margin-bottom: 12px; font-size: 21px; }
  .workflow-summary { min-height: 0; font-size: 14px; line-height: 1.6; margin-bottom: 14px; }
  .workflow-card .workflow-benefit { min-height: 0; margin-bottom: 16px; font-size: 12px; }
  .workflow-detail > summary { min-height: 46px; font-size: 13px; }
  .library-catalogue-note { font-size: 12px; }
  .library-more { margin-top: 24px; }
  .library-dialog { width: 100%; max-width: none; max-height: calc(100dvh - 12px); margin: auto 0 0; border-radius: 12px 12px 0 0; }
  .library-dialog-content { padding: 0 18px max(20px, env(safe-area-inset-bottom)); }
  .library-dialog-header { padding-block: 12px; margin-bottom: 20px; }
  .library-dialog-header > span { font-size: 11px; }
  .library-dialog-header button { width: 44px; height: 44px; }
  .library-dialog-intro h2 { font-size: 26px; }
  .library-dialog-intro > p { font-size: 14px; }
  .library-dialog .workflow-artwork img { height: auto; }
  .workflow-trigger dt, .workflow-adaptation dt { font-size: 11px; }
  .workflow-trigger dd, .workflow-adaptation dd, .workflow-steps li,
  .workflow-usecase p, .library-dialog .workflow-steps li,
  .library-dialog .workflow-usecase p, .library-dialog .workflow-adaptation dd { font-size: 14px; line-height: 1.6; }
  .workflow-usecase h4 { font-size: 16px; }
  .workflow-contact, .library-dialog .workflow-contact { font-size: 13px; }
  .library-next { padding-block: 32px; }
  .library-next p { font-size: 14px; line-height: 1.6; }
  .library-next .text-link { font-size: 13px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: 0s !important; }
}
