/* Phone composition. This stylesheet is also enqueued with a phone-only media attribute. */
@media screen and (max-width:767px) {
  html { scroll-padding-top:80px; }
  body.jm-conexao { font-size:17px; line-height:1.75; }
  body.jm-conexao main { overflow-wrap:break-word; }
  body.jm-conexao main :is(section[id],h2[id],h3[id],[id="ferramenta"],[id="mensagem"]) { scroll-margin-top:80px; }
  .wrap,.svc-wrap,.audit-wrap,.about-wrap,.contact-wrap,.lab-wrap { width:calc(100% - 40px); }
  main :is(input,textarea,select) { font-size:16px; }
  main :is(p,li,dd) { text-wrap:pretty; }
  main img { max-width:100%; }
  main :is(.button,.svc-button,.audit-button,.about-button,.contact-button,.lab-button,.human-button) { min-height:50px; font-size:16px; line-height:1.5; padding:13px 20px; }

  /* A quiet, compact band; the white symbol is the same brand asset as desktop. */
  body.jm-conexao .hbox-site-header { top:0; left:0; right:0; transform:none; width:100%; max-width:none; min-height:64px; height:64px; padding:6px 20px; margin:0; grid-template-columns:1fr auto; border:0; border-radius:0; background:#1767aa; box-shadow:none; backdrop-filter:none; -webkit-backdrop-filter:none; }
  body.jm-conexao .hbox-site-header.is-scrolled { top:0; width:100%; min-height:56px; height:56px; padding:4px 20px; border:0; border-radius:0; background:rgb(0 74 138 / .93); box-shadow:0 2px 8px rgb(0 45 84 / .08); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); }
  body.jm-conexao .hbox-site-header .brand-crop,body.jm-conexao .hbox-site-header.is-scrolled .brand-crop { display:flex; align-items:center; justify-content:flex-start; width:52px; height:50px; padding:4px 0; border:0; border-radius:0; background:transparent; }
  body.jm-conexao .hbox-site-header .brand-art,body.jm-conexao .hbox-site-header .brand-art img,body.jm-conexao .hbox-site-header.is-scrolled .brand-art,body.jm-conexao .hbox-site-header.is-scrolled .brand-art img { display:block; position:static; width:34px!important; height:39px!important; max-width:none; object-fit:contain; transform:none; }
  body.jm-conexao .hbox-site-header.is-scrolled .brand-art,body.jm-conexao .hbox-site-header.is-scrolled .brand-art img { width:30px!important; height:35px!important; }
  body.jm-conexao .hbox-site-header .header-actions { gap:0; }
  body.jm-conexao .hbox-site-header .mobile-menu>summary { width:44px; height:44px; min-height:44px; padding:10px; color:#fff; background:transparent; border:0; border-radius:4px; }
  body.jm-conexao .hbox-site-header .mobile-menu>summary svg { width:25px; height:25px; }
  body.jm-conexao .hbox-site-header .mobile-menu>nav { position:fixed; top:64px; left:0; right:0; width:100%; max-height:calc(100dvh - 64px); padding:12px 20px 24px; border:0; border-radius:0 0 10px 10px; background:#fff; color:#002d54; box-shadow:0 12px 24px rgb(0 45 84 / .15); overflow-y:auto; overscroll-behavior:contain; }
  body.jm-conexao .hbox-site-header.is-scrolled .mobile-menu>nav { top:56px; max-height:calc(100dvh - 56px); }
  body.jm-conexao .hbox-site-header .mobile-menu nav :is(a,summary) { min-height:46px; font-size:16px; line-height:1.5; }
  body.jm-conexao .hbox-site-header .mobile-audience-links a { font-size:15px; padding-block:11px; }
  body.jm-conexao .hbox-site-header .mobile-nav-contact { justify-content:center; margin-top:12px; background:#5bdf66; color:#002d54; border:0; border-radius:6px; }
  body.jm-conexao .hbox-site-header :is(a,summary):focus-visible { outline-color:#5bdf66!important; }
  body.admin-bar .hbox-site-header,body.admin-bar .hbox-site-header.is-scrolled { top:46px; }
  body.admin-bar .hbox-site-header .mobile-menu>nav { top:110px; max-height:calc(100dvh - 110px); }
  body.admin-bar .hbox-site-header.is-scrolled .mobile-menu>nav { top:102px; max-height:calc(100dvh - 102px); }

  /* Home: a complete introduction and portrait, rather than a desktop stack. */
  body.jm-conexao:not(.jm-blog) main>.hero.hero-personal:first-child { padding-top:94px; }
  .hero-personal .hero-layout { gap:0; min-height:0; }
  .hero-personal .hero-intro { padding:0; }
  .hero-personal .hero-kicker { font-size:12px; line-height:1.65; max-width:none; }
  .hero-personal h1 { font-size:clamp(32px,9.2vw,40px); line-height:1.12; letter-spacing:-1.25px; margin-top:16px; }
  .hero-personal h1 span { text-wrap:initial; }
  .hero-personal .hero-description { font-size:16.5px; line-height:1.7; margin-top:19px; max-width:38ch; }
  .hero-personal .hero-links { display:grid; gap:5px; margin-top:23px; }
  .hero-personal .hero-links .button { width:100%; min-height:52px; font-size:15px; padding:13px 14px; }
  .hero-personal .hero-project-link { min-height:44px; font-size:14px; }
  .hero-personal .hero-photo { width:100%; height:300px; margin:13px auto 0; overflow:hidden; align-items:flex-start; }
  .hero-personal .hero-photo>img { width:330px; max-width:none; height:330px; object-fit:contain; transform:none; }
  .hero-personal .hero-atmosphere { background-size:180px 180px; opacity:.23; }
  .hero-personal .hero-photo:before { inset:-10% -15% -10%; }
  .clients { padding-block:23px; }
  .client-row { gap:17px; }
  .client-row>p { font-size:13px; line-height:1.6; }
  .client-window { width:100%; max-width:100%; }
  .section { padding-block:48px; }
  .section-heading { gap:17px; margin-bottom:25px; }
  .services .display,.writing .display,.about-copy>.display,#cases .human-heading { font-size:30px; line-height:1.2; letter-spacing:-1px; }
  .section-heading>p,.writing-intro>p { font-size:16.5px; line-height:1.75; }
  .service-tabs { display:grid; grid-template-columns:1fr 1fr; gap:0 20px; margin-bottom:27px; }
  .service-tab { min-height:74px; padding:13px 0; font-size:14px; line-height:1.5; border-bottom:2px solid #dce3e9; align-items:center; }
  .service-tab[aria-selected=true] { border-bottom-color:#004a8a; color:#004a8a; font-weight:750; }
  .service-panel { grid-template-columns:minmax(0,1fr); gap:25px; }
  .service-explanation h3 { font-size:26px; line-height:1.25; }
  .service-explanation>p:not(.service-label) { font-size:16.5px; line-height:1.75; }
  .service-explanation .deliverables { font-size:14px; line-height:1.7; margin-block:20px; }
  .service-explanation .button { width:100%; font-size:15px; }
  .service-visual { min-width:0; margin:0; }
  .jm-service-art { padding:23px 17px; min-height:0; }
  .jm-map-branches { gap:8px; }
  .jm-map-branches>div { min-width:0; }
  .jm-map-branches :is(strong,span) { font-size:12px; }
  .jm-map-branches small { font-size:10px; }
  .jm-art-caption { font-size:11px; }
  .platforms { font-size:14px; }
  #cases.human-section { padding-block:49px; }
  #cases .human-work-title { gap:15px; margin-bottom:25px; }
  #cases .human-heading br { display:none; }
  #cases .human-simple-link { font-size:15px; margin-top:0; min-height:44px; display:inline-flex; align-items:center; }
  #cases .human-feature { gap:23px; }
  #cases .human-feature figure { aspect-ratio:16/10; }
  #cases .human-feature h3 { font-size:29px; }
  #cases .human-feature-copy>p:not(.human-context),#cases .human-project-copy>p { font-size:16.5px; line-height:1.75; }
  #cases .human-result strong { font-size:48px; }
  #cases .human-result span { font-size:14px; }
  #cases .human-feature-copy .human-button { display:flex; width:100%; min-height:51px; font-size:15px; margin-top:23px; }
  #cases .human-other-work { gap:34px; margin-top:40px; }
  #cases .human-project { grid-template-columns:105px minmax(0,1fr); gap:13px 17px; }
  #cases .human-client-image { width:105px; height:70px; }
  #cases .human-project h3 { font-size:23px; }
  #cases .human-project .human-button { justify-self:stretch; width:100%; font-size:15px; }
  .about-copy>.about-lead { font-size:18px!important; line-height:1.7!important; }
  .about-copy>p:not(.eyebrow),.about-practice-grid p { font-size:16.5px; line-height:1.8; }
  .about-visual figure { aspect-ratio:1.35; }
  .about-visual blockquote { font-size:20px; line-height:1.55; }
  .about-practice-grid { gap:28px; }
  .about-practice-grid h4 { font-size:20px; }
  .writing .posts { gap:36px; }
  .writing .post-cover,.writing .post:first-child .post-cover { aspect-ratio:16/9; }
  .writing .post h3 { font-size:23px; line-height:1.35; }
  .writing .post-excerpt { font-size:16px; line-height:1.75; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; overflow:hidden; }
  .writing .post .text-link { display:inline-flex; align-items:center; min-height:44px; font-size:15px; }

  /* Service pages: editorial rhythm, readable diagrams and deliberate crops. */
  .jm-services .svc-wrap,.audit-page .audit-wrap { width:calc(100% - 40px); }
  .jm-services .svc-space,.audit-page .audit-space { padding-block:49px; }
  .jm-services .svc-hero,.audit-page .audit-hero { padding-top:91px; padding-bottom:45px; }
  .svc-breadcrumbs,.audit-breadcrumbs { font-size:12px; line-height:1.6; margin-bottom:0; }
  .svc-breadcrumbs ol,.audit-breadcrumbs ol { gap:6px; }
  .svc-hero-grid,.audit-hero-grid { grid-template-columns:minmax(0,1fr); gap:28px; margin-top:27px; }
  .jm-services h1,.audit-page h1 { font-size:clamp(31px,8.4vw,38px); line-height:1.16; letter-spacing:-1.2px; text-wrap:balance; }
  .jm-services .svc-lead,.audit-page .audit-hero-copy .audit-lead { font-size:16.5px; line-height:1.75; margin-top:19px; }
  .jm-services .svc-eyebrow,.audit-page .audit-eyebrow { font-size:12px; line-height:1.6; margin-bottom:16px; }
  .svc-actions,.audit-page .audit-actions { display:flex; flex-wrap:wrap; gap:7px 20px; margin-top:23px; }
  .svc-actions>.svc-button,.audit-actions>.audit-button { width:100%; min-height:51px; font-size:15px; }
  .svc-actions .svc-text-link,.audit-page .audit-text-link { display:inline-flex; align-items:center; min-height:44px; font-size:14px; }
  .jm-services .svc-hero .svc-hero-photo img,.audit-page .audit-hero-photo img { height:auto!important; aspect-ratio:3/2; object-fit:cover; border-radius:10px; }
  .svc-hero-photo,.audit-hero-photo { margin:0; }
  .svc-hero-labels,.audit-hero-scope { font-size:12px; gap:10px; margin-top:20px; }
  .jm-services h2,.audit-page h2 { font-size:29px; line-height:1.23; letter-spacing:-.9px; }
  .jm-services h3,.audit-page h3 { font-size:21px; line-height:1.4; }
  .jm-services :is(p,li,dd),.audit-page :is(p,li,dd) { font-size:16.5px; line-height:1.8; }
  .svc-intro,.svc-feature-heading,.svc-section-heading,.audit-context,.audit-section-intro { gap:26px; }
  .svc-intro-points { gap:24px; }
  .svc-scope-item { padding-block:23px; }
  .svc-catalog-route { gap:10px; }
  .svc-catalog-stage { padding:19px 14px; }
  .svc-tree-leaves { grid-template-columns:minmax(0,1fr); gap:0; padding-left:21px; margin-left:19px; border-left:1px solid currentColor; }
  .svc-tree-leaves>div { text-align:left; padding:18px 0; border:0; }
  .svc-tree-leaves h3 { font-size:19px; }
  .svc-tree-leaves p { font-size:15px; }
  .svc-tree-root,.svc-tree-category { padding:21px 20px; }
  .svc-price-grid { gap:25px; }
  .svc-price-plan { padding:26px 22px; border-radius:8px; }
  .svc-price-plan h3 { font-size:23px; }
  .svc-price-plan .svc-button { width:100%; font-size:15px; }
  .svc-price-plan li { font-size:15px; }
  .svc-price>small { font-size:15px; }
  .audit-page .audit-analysis-topics { padding:0 19px; border-radius:8px; }
  .audit-page .audit-analysis-item { padding-block:22px; gap:11px; }
  .audit-page .audit-analysis-item h3 { font-size:18px; line-height:1.4; }
  .audit-page .audit-analysis-item p { font-size:15.5px; line-height:1.75; }
  .svc-faq summary,.audit-faq-list summary { font-size:17px; line-height:1.6; min-height:48px; display:flex; align-items:center; }
  .svc-faq details>p,.audit-faq-list details>p { font-size:16px; }
  .svc-contact-form,.audit-contact-form { border-radius:10px; padding:24px 18px; }
  .svc-contact-form .ff-el-group,.audit-contact-form .ff-el-group { margin-bottom:20px; }
  .svc-contact-form :is(input,textarea,select),.audit-contact-form :is(input,textarea,select) { font-size:16px; min-height:50px; }
  .svc-directory-hero { padding:100px 0 46px; }
  .svc-directory-hero h1 { font-size:35px; }
  .svc-directory-jumps { display:flex; flex-wrap:wrap; gap:8px 22px; margin-top:20px; }
  .svc-directory-jumps a { display:inline-flex; align-items:center; min-height:44px; font-size:14px; }
  .svc-directory-group h2 { font-size:29px; }
  .svc-directory-links>div { padding-block:26px; }
  .svc-directory-links h3 { font-size:23px; }

  /* Keep the approved hiring identity, with a shorter visual introduction. */
  :is(.audit-page,.jm-services) :is(.jm-contracting-audit,.jm-contracting-editorial) { padding-block:48px; }
  :is(.jm-contracting-audit,.jm-contracting-editorial) .jm-ca-layout { width:calc(100% - 40px); gap:20px; }
  :is(.jm-contracting-audit,.jm-contracting-editorial) #contratacao-title { font-size:30px; line-height:1.2; }
  :is(.jm-contracting-audit,.jm-contracting-editorial) .jm-ca-intro { font-size:16px; line-height:1.8; margin:19px 0 23px; }
  :is(.jm-contracting-audit,.jm-contracting-editorial) .jm-ca-image { border-radius:9px; }
  :is(.jm-contracting-audit,.jm-contracting-editorial) .jm-ca-image img { aspect-ratio:16/9; object-position:center 45%; }
  :is(.jm-contracting-audit,.jm-contracting-editorial) .jm-ca-stage summary { grid-template-columns:46px minmax(0,1fr) 18px; gap:13px; min-height:85px; padding-block:15px; }
  :is(.jm-contracting-audit,.jm-contracting-editorial) .jm-ca-icon { width:46px; height:46px; }
  :is(.jm-contracting-audit,.jm-contracting-editorial) .jm-ca-stage-label strong { font-size:22px; }
  :is(.jm-contracting-audit,.jm-contracting-editorial) .jm-ca-stage-label>span { font-size:13px; line-height:1.55; }
  :is(.jm-contracting-audit,.jm-contracting-editorial) .jm-ca-answer { padding:3px 0 23px; font-size:16px; line-height:1.8; }
  :is(.jm-contracting-audit,.jm-contracting-editorial) .jm-ca-answer :is(p,dd,dt) { font-size:inherit; line-height:inherit; }
  :is(.jm-contracting-audit,.jm-contracting-editorial) a.jm-contracting-button { width:100%; margin:20px 0 0; min-height:52px; padding:13px 18px; font-size:15px; }

  /* Articles and archives use the same type scale and blue as the rest of the site. */
  body.jm-blog { --type-display:clamp(29px,8vw,36px); --type-section:29px; --type-section-compact:27px; --type-subsection:27px; --type-leading-display:1.2; --type-leading-heading:1.25; --type-tracking-display:-.035em; --type-tracking-heading:-.025em; }
  .jm-blog main :is(.blog-hero,.blog-archive-hero) { padding:100px 20px 38px; }
  .jm-blog main .blog-hero h1,.jm-blog main .blog-archive-hero h1 { font-size:36px; line-height:1.17; letter-spacing:-1.2px; }
  .jm-blog main .blog-hero-copy { gap:18px; }
  .jm-blog main .blog-hero-copy>p:last-child { font-size:16.5px; line-height:1.75; }
  .jm-blog main .blog-category-nav { display:flex; flex-wrap:nowrap; gap:22px; overflow-x:auto; margin:23px -20px 0; padding:0 20px; scrollbar-width:thin; }
  .jm-blog main .blog-category-nav a { flex:none; min-height:44px; display:inline-flex; align-items:center; font-size:14px; }
  .jm-blog main :is(.blog-featured,.blog-latest,.blog-archive-content) { padding:40px 20px 49px; }
  .jm-blog main .blog-featured { gap:25px; }
  .jm-blog main .blog-featured-image { aspect-ratio:16/9; min-height:0; border-radius:9px; }
  .jm-blog main .blog-featured-copy h2 { font-size:27px; line-height:1.27; }
  .jm-blog main .blog-featured-copy>p { font-size:16px; line-height:1.75; }
  .jm-blog main .blog-featured-meta { font-size:12px; }
  .jm-blog main .blog-card-grid { gap:35px; }
  .jm-blog main .blog-card-image { aspect-ratio:16/9; border-radius:9px; }
  .jm-blog main .blog-card h3,.jm-blog main .blog-related .blog-card h3 { font-size:23px; line-height:1.35; letter-spacing:-.5px; }
  .jm-blog main .blog-card-body>p { font-size:16px; line-height:1.75; }
  .jm-blog main .blog-card-footer { min-height:44px; font-size:14px; }
  .jm-blog main :is(.blog-topics,.blog-cta,.blog-related) { padding:48px 20px 54px; }
  .jm-blog main .blog-section-heading h2,.jm-blog main .blog-related>header h2 { font-size:29px; line-height:1.25; }
  .jm-blog main .blog-related>header { align-items:start; gap:13px; margin-bottom:26px; }
  .jm-blog main .blog-related>header>a { min-height:44px; font-size:14px; }
  .jm-blog main .blog-pagination { display:flex; flex-wrap:wrap; justify-content:center; gap:7px; margin-top:35px; }
  .jm-blog main .blog-pagination .page-numbers { min-width:44px; min-height:46px; padding:10px 13px; font-size:14px; }
  .jm-blog main .blog-pagination :is(.prev,.next) { padding-inline:15px; }
  .jm-blog main .blog-article-header { width:100%; padding:94px 20px 27px; }
  .jm-blog main .blog-breadcrumbs { font-size:12px; line-height:1.7; margin-bottom:24px; }
  .jm-blog main .blog-article-heading { margin-top:0; }
  .jm-blog main .blog-article-category { display:inline-block; font-size:12px; margin-bottom:15px; }
  .jm-blog main .blog-article-heading h1 { font-size:clamp(29px,8vw,36px); line-height:1.2; letter-spacing:-1.1px; margin-top:0; }
  .jm-blog main .blog-article-heading>p { font-size:16px; line-height:1.75; margin-top:20px; }
  .jm-blog main .blog-article-meta { position:relative; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:center; gap:19px 15px; margin-top:24px; }
  .jm-blog main .blog-article-meta>.blog-author-mark { position:absolute; left:0; top:0; width:44px; height:48px; border-radius:6px; }
  .jm-blog main .blog-article-meta>span:first-of-type { grid-column:1/-1; grid-row:1; min-height:48px; padding-left:56px; justify-content:center; }
  .jm-blog main .blog-article-meta>.blog-article-meta-divider { display:none; }
  .jm-blog main .blog-article-meta>span:not(.blog-article-meta-divider):not(:first-of-type) { grid-column:auto; display:flex; flex-wrap:wrap; gap:4px 9px; font-size:13px; line-height:1.5; width:auto; }
  .jm-blog main .blog-article-meta small { font-size:12px; line-height:1.55; }
  .jm-blog main .blog-article-meta strong { font-size:14px; }
  .jm-blog main .blog-article-cover { width:calc(100% - 40px); margin-inline:auto; border-radius:9px; overflow:hidden; }
  .jm-blog main .blog-article-cover img { width:100%; height:auto; aspect-ratio:16/9; object-fit:cover; }
  .jm-blog main .blog-article-layout { padding:26px 20px 48px; gap:31px; grid-template-columns:minmax(0,1fr); }
  .jm-blog main .blog-table-of-contents { position:static; width:100%; padding:0; max-height:none; background:transparent; border:0; }
  .jm-mobile-toc { background:#f3f5f7; border:0; border-radius:7px; padding:0 17px; }
  .jm-mobile-toc>summary { display:flex; justify-content:space-between; gap:12px; align-items:center; padding:17px 0; min-height:56px; cursor:pointer; list-style:none; font:650 16px/1.5 JMManrope,Arial,sans-serif; color:#004a8a; }
  .jm-mobile-toc>summary::-webkit-details-marker { display:none; }
  .jm-mobile-toc>summary:after { content:'+'; font:400 25px/1 JMInter,Arial,sans-serif; }
  .jm-mobile-toc[open]>summary:after { content:'−'; }
  .jm-mobile-toc>summary small { margin-left:auto; font:400 12px/1.5 JMInter,Arial,sans-serif; color:#48586b; }
  .jm-blog main .jm-mobile-toc nav { padding-bottom:13px; }
  .jm-blog main .jm-mobile-toc ol { display:block!important; margin:0; }
  .jm-blog main .jm-mobile-toc a { min-height:44px; padding-block:12px; font-size:14px; line-height:1.6; }
  .jm-blog main .jm-mobile-toc li { border:0; }
  .jm-blog main .blog-article-body { min-width:0; }
  .jm-blog main .blog-article-body .entry-content>p,.jm-blog main .blog-article-body .entry-content li { font-size:17px; line-height:1.85; }
  .jm-blog main .blog-article-body .entry-content>p:first-child { font-size:17px; line-height:1.85; }
  .jm-blog main .blog-article-body .entry-content h2 { font-size:27px; line-height:1.3; letter-spacing:-.7px; margin:39px 0 19px; }
  .jm-blog main .blog-article-body .entry-content h3 { font-size:22px; line-height:1.4; margin:30px 0 16px; }
  .jm-blog main .blog-article-body .entry-content :is(ul,ol) { padding-left:23px; }
  .jm-blog main .blog-article-body .entry-content li+li { margin-top:10px; }
  .jm-blog main .blog-article-body .entry-content blockquote { margin-inline:0; padding-left:19px; }
  .jm-blog main .blog-article-body .entry-content :is(pre,code) { overflow-wrap:anywhere; }
  .jm-blog main .blog-author-card { display:grid; grid-template-columns:58px minmax(0,1fr); padding:23px 20px; gap:13px; margin-top:39px; border-radius:10px; }
  .jm-blog main .blog-author-card .blog-author-mark { grid-column:1; grid-row:1/4; width:58px; height:68px; border-radius:7px; }
  .jm-blog main .blog-author-card-copy { display:contents; }
  .jm-blog main .blog-author-card-copy>small { grid-column:2; font-size:10px; line-height:1.6; }
  .jm-blog main .blog-author-card-copy>h2 { grid-column:2; font-size:24px!important; margin:0!important; line-height:1.2; }
  .jm-blog main .blog-author-card-copy>.blog-author-card-role { grid-column:2; font-size:12px; line-height:1.65; margin:0; }
  .jm-blog main .blog-author-card-copy>p:not(.blog-author-card-role),.jm-blog main .blog-author-expertise,.jm-blog main .blog-author-about-link { grid-column:1/-1; }
  .jm-blog main .blog-author-card-copy>p:not(.blog-author-card-role) { font-size:15px; line-height:1.8; margin-top:9px; }
  .jm-blog main .blog-author-expertise { gap:8px 17px; margin-top:0; }
  .jm-blog main .blog-author-expertise span { font-size:12px; }
  .jm-blog main .blog-author-about-link { justify-content:center; min-height:48px; margin-top:5px; font-size:14px; }
  .jm-mobile-table { width:100%; overflow-x:auto; overscroll-behavior-inline:contain; margin-block:24px; -webkit-overflow-scrolling:touch; }
  .jm-mobile-table>table { margin:0; min-width:530px; font-size:14px; }
  .jm-mobile-table :is(th,td) { padding:13px 12px; }
  .jm-mobile-table:focus-visible { outline:3px solid #1767aa; outline-offset:3px; }
  .jm-mobile-scroll-hint { font-size:12px!important; color:#48586b; margin:0 0 10px!important; }
  .jm-collection .collection-directory-line { margin-top:23px; gap:15px; }
  .jm-collection .collection-case-list { padding:44px 20px 55px; }
  .jm-collection .collection-featured { padding-bottom:46px; }
  .jm-collection .collection-case-list .blog-card-grid { gap:36px; }
  .jm-collection .collection-button { display:flex; width:100%; min-height:51px; font-size:15px; }
  .jm-case-detail .case-brand-cover { width:calc(100% - 40px); height:190px; border-radius:9px; }
  .jm-case-detail .case-brand-cover img { height:190px!important; }
  .jm-case-detail .case-brand-apto-brasil img,.jm-case-detail .case-brand-mundo-metal img { height:auto!important; max-height:150px; }
  .jm-case-detail .case-related { padding:45px 20px 54px; }

  /* About and contact have their own composition, not an endless introductory stack. */
  .jm-about .about-intro { padding-top:98px; padding-bottom:0; }
  .jm-about .about-intro-grid { gap:27px; }
  .jm-about h1 { font-size:36px; line-height:1.17; letter-spacing:-1.25px; }
  .jm-about h1 br { display:none; }
  .jm-about h2 { font-size:29px; line-height:1.25; }
  .jm-about .about-intro .about-intro-lead { font-size:18px; line-height:1.75; margin-top:20px; }
  .jm-about .about-intro-copy>p:not(.about-kicker) { font-size:16.5px; line-height:1.8; }
  .jm-about .about-actions { display:flex; flex-wrap:wrap; gap:10px 20px; margin-top:24px; }
  .jm-about .about-actions .about-button { width:100%; font-size:15px; }
  .jm-about .about-actions>a:not(.about-button) { display:inline-flex; align-items:center; min-height:44px; font-size:14px; }
  .jm-about .about-portrait { width:100%; height:280px; aspect-ratio:auto; overflow:hidden; }
  .jm-about .about-portrait img { height:100%!important; object-fit:cover; object-position:center 35%; }
  .jm-about .about-page-nav { display:flex; flex-wrap:nowrap; overflow-x:auto; gap:22px; padding-block:13px; }
  .jm-about .about-page-nav a { flex:none; display:inline-flex; align-items:center; min-height:44px; font-size:14px; }
  .jm-about .about-space { padding-block:49px; }
  .jm-about :is(.about-story-copy p,.about-work p) { font-size:16.5px; line-height:1.85; }
  .jm-about .about-work-columns { gap:27px; margin-top:28px; }
  .jm-about .about-project-grid { gap:35px; }
  .jm-contact .contact-opening { padding:98px 0 49px; }
  .jm-contact .contact-opening-grid { display:flex; flex-direction:column; gap:0; }
  .jm-contact .contact-copy { display:contents; }
  .jm-contact .contact-copy>.contact-kicker { order:0; font-size:12px; margin-bottom:16px; }
  .jm-contact .contact-copy>h1 { order:1; font-size:36px; line-height:1.18; letter-spacing:-1.2px; }
  .jm-contact .contact-copy>.contact-lead { order:2; font-size:16.5px; line-height:1.75; margin:20px 0 0; }
  .jm-contact .contact-direct { order:3; display:block; width:100%; margin-top:24px; }
  .jm-contact .contact-direct>.contact-button { width:100%; min-height:52px; font-size:15px; }
  .jm-contact .contact-direct>.contact-phone,.jm-contact .contact-direct>p { display:none; }
  .jm-contact .contact-email { display:inline-flex; align-items:center; min-height:44px; margin-top:7px; font-size:15px; }
  .jm-contact .contact-form-panel { order:4; width:100%; margin-top:25px; padding:25px 18px; border-radius:10px; }
  .jm-contact .contact-form-panel h2 { font-size:26px; line-height:1.3; }
  .jm-contact .contact-copy>p:not(.contact-kicker):not(.contact-lead) { order:5; font-size:16px; line-height:1.8; margin-top:30px; }
  .jm-contact .contact-person { order:6; width:100%; margin-top:23px; padding-top:23px; }
  .jm-contact-form :is(input:not([type=hidden]):not([type=checkbox]),select) { min-height:51px; font-size:16px; }
  .jm-contact-form textarea { min-height:145px; font-size:16px; }
  .jm-contact-form .ff-el-input--label label { font-size:14px; }
  .jm-contact .contact-context { padding-block:49px; }
  .jm-contact .contact-context h2 { font-size:29px; line-height:1.25; }
  .jm-contact .contact-context-list dt { font-size:21px; }

  /* Tools remain the page itself; result access is close to the controls. */
  .jm-lab[data-tool] .lab-wrap { width:calc(100% - 40px); }
  .jm-lab .lab-hero-compact,.jm-lab.lab-directory .lab-hero { padding:94px 0 34px; }
  .jm-lab .lab-crumbs { font-size:12px; line-height:1.6; margin-bottom:21px; }
  .jm-lab[data-tool] .lab-hero-compact h1,.jm-lab.lab-directory .lab-hero h1 { font-size:32px; line-height:1.2; letter-spacing:-1.1px; }
  .jm-lab[data-tool] .lab-hero-compact .lab-lead,.jm-lab.lab-directory .lab-hero .lab-lead { font-size:16px; line-height:1.75; margin-top:19px; }
  .jm-lab[data-tool]>.lab-workbench { width:calc(100% - 40px); padding-block:28px 49px; }
  .jm-lab[data-tool] .lab-split { display:grid; grid-template-columns:minmax(0,1fr); gap:35px; }
  .jm-lab[data-tool] :is(.lab-input,.lab-result) { min-width:0; }
  .jm-lab[data-tool] .lab-input h2,.jm-lab[data-tool] .lab-result h2 { font-size:25px; line-height:1.3; }
  .jm-lab[data-tool] .lab-form-intro { font-size:16px; line-height:1.75; margin-bottom:23px; }
  .jm-lab[data-tool] .lab-fields { grid-template-columns:minmax(0,1fr); gap:21px; }
  .jm-lab[data-tool] .lab-field label { font-size:14px; line-height:1.65; }
  .jm-lab[data-tool] .lab-field :is(input,select,textarea),.jm-lab[data-tool] .lab-result-filters :is(input,select),.jm-lab[data-tool] .lab-schema-choice select { font-size:16px; min-height:51px; padding:12px; }
  .jm-lab[data-tool] .lab-query-controls { display:grid; gap:21px; }
  .jm-lab[data-tool] .lab-network-form .lab-query-controls>.lab-fields { grid-template-columns:minmax(0,1fr); width:100%; }
  .jm-lab[data-tool] .lab-query-controls>.lab-actions { display:flex; flex-wrap:wrap; width:100%; gap:12px; }
  .jm-lab[data-tool] .lab-query-controls>.lab-actions>.lab-button { flex:1; }
  .jm-lab[data-tool] .lab-network-form { margin-bottom:35px; }
  .jm-lab[data-tool] .lab-advanced summary { min-height:48px; font-size:15px; }
  .jm-lab[data-tool] .lab-result-filters { gap:17px; margin-bottom:25px; }
  .jm-lab[data-tool] .lab-empty { min-height:0; padding:25px 20px; }
  .jm-lab[data-tool] .lab-empty strong { font-size:22px; }
  .jm-mobile-worknav { display:flex; align-items:center; gap:5px; padding:5px; background:#f3f5f7; border-radius:7px; margin-bottom:27px; }
  .jm-mobile-worknav a { display:flex; justify-content:center; align-items:center; gap:7px; flex:1; min-height:44px; padding:8px; color:#004a8a; font:650 14px/1.5 JMManrope,Arial,sans-serif; text-decoration:none; text-align:center; }
  .jm-mobile-worknav a[aria-current=location] { background:#004a8a; color:#fff; border-radius:4px; }
  .jm-mobile-worknav a:focus-visible { outline:3px solid #1767aa; outline-offset:3px; }
  .jm-mobile-editor-link { display:inline-flex; align-items:center; min-height:44px; margin-bottom:10px; color:#004a8a; font:600 14px/1.5 JMManrope,Arial,sans-serif; text-decoration:underline; text-underline-offset:4px; }
  .jm-lab :is(#jm-tool-input,#jm-tool-result) { scroll-margin-top:80px; }
  .jm-lab[data-tool] .lab-result-head { gap:14px; flex-wrap:wrap; align-items:center; }
  .jm-lab[data-tool] .lab-view-switch { min-height:44px; }
  .jm-lab[data-tool] .lab-view-switch button { min-height:44px; font-size:14px; padding:10px 13px; }
  .jm-lab[data-tool] .lab-preview-note { font-size:13px; line-height:1.7; }
  .jm-lab[data-tool] .lab-output-actions { display:flex; flex-wrap:wrap; gap:12px 20px; margin-top:23px; }
  .jm-lab[data-tool] .lab-output-actions :is(button,a) { min-height:44px; font-size:14px; }
  .jm-lab[data-tool] .lab-output-actions .lab-button { width:100%; }
  .jm-lab[data-tool] .lab-code { max-width:100%; padding:20px 15px; font-size:13px; overflow-x:auto; }
  .jm-lab .report-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 17px; }
  .jm-lab .report-metric>strong { font-size:30px; }
  .jm-lab .report-metric>span { font-size:14px; }
  .jm-lab .report-brand-head { flex-wrap:wrap; gap:15px; }
  .jm-lab .report-brand-head h3 { font-size:25px; }
  .jm-lab .report-brand-head p { font-size:14px; overflow-wrap:anywhere; }
  .jm-lab .report-run-state { width:100%; margin-left:0; }
  .jm-lab .roi-result-banner { padding:23px 20px; }
  .jm-lab .roi-scenarios { grid-template-columns:minmax(0,1fr); gap:21px; }
  .jm-lab .roi-scenarios article { padding:19px 0; border:0; }
  .jm-lab .lab-graph { margin-inline:0; }
  .jm-lab .lab-roi-chart { max-width:100%; }
  .jm-lab .lab-reading-section,.jm-lab .lab-example-section,.jm-lab .lab-deeper-section,.jm-lab .lab-related,.jm-lab .lab-explanation,.jm-lab .lab-directory-guide { padding-block:47px; }
  .jm-lab .lab-explain-copy h2,.jm-lab .lab-related h2,.jm-lab .lab-reading-section h2 { font-size:28px; line-height:1.3; }
  .jm-lab :is(.lab-explain-copy p,.lab-guide-content p,.lab-reading-section p,.lab-deeper-section p) { font-size:16.5px; line-height:1.8; }
  .jm-lab .lab-reading-art { max-width:100%; }
  .jm-lab .lab-reading-art img { border-radius:8px; }
  .jm-lab .lab-related-grid { gap:32px; }
  .jm-lab.lab-directory .lab-catalog { padding-block:43px 50px; }
  .jm-lab.lab-directory .lab-catalog-heading h2 { font-size:29px; }
  .jm-lab.lab-directory .lab-categories { display:flex; flex-wrap:nowrap; gap:8px; overflow-x:auto; margin:24px -20px 0; padding:0 20px 8px; }
  .jm-lab.lab-directory .lab-categories button { flex:none; min-height:44px; font-size:14px; }
  .jm-lab.lab-directory .lab-catalog-grid { gap:37px; }
  .jm-lab.lab-directory .lab-catalog-cover { margin-bottom:21px; border-radius:9px; }
  .jm-lab.lab-directory .lab-catalog-tool h3 { font-size:25px; line-height:1.3; }
  .jm-lab.lab-directory .lab-catalog-tool>p:not(.lab-kicker) { font-size:16px; }
  .jm-lab .audit-visual>.report-brand-head { padding:0 0 25px; gap:17px; }
  .jm-lab .audit-visual .report-brand-head h2 { font-size:27px; }
  .jm-lab .audit-header-actions { width:100%; justify-content:space-between; }
  .jm-lab .audit-export { font-size:14px; min-height:48px; padding:12px 16px; }
  .jm-lab .audit-visual .audit-app-layout { grid-template-columns:minmax(0,1fr); gap:25px; }
  .jm-lab .audit-visual .audit-sidebar { display:flex; flex-direction:row; gap:23px; overflow-x:auto; padding:0 0 6px; border:0; }
  .jm-lab .audit-visual .audit-sidebar button { flex:none; min-height:48px; padding:10px 0; font-size:14px; width:auto; }
  .jm-lab .audit-visual .audit-main { padding:0; }
  .jm-lab .audit-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); gap:23px 17px; }
  .jm-lab .audit-kpi strong { font-size:34px; }
  .jm-lab .audit-kpi span { font-size:13px; line-height:1.6; }
  .jm-lab .audit-chart-grid { grid-template-columns:minmax(0,1fr); gap:29px; }
  .jm-lab .audit-category-row { grid-template-columns:119px minmax(0,1fr) 20px; font-size:13px; min-height:43px; gap:9px; }
  .jm-lab .audit-chart-axis { margin-left:128px; margin-right:29px; font-size:12px; }
  .jm-lab .audit-http-content { display:flex; flex-direction:row; gap:14px; }
  .jm-lab .audit-http-content>svg { flex:none; width:140px; height:140px; margin:0; }
  .jm-lab .audit-http-legend li { font-size:13px; }
  .jm-lab .audit-finding-copy strong { font-size:16px; line-height:1.6; }
  .jm-lab .audit-finding-copy small { font-size:13px; line-height:1.7; }
  .jm-lab .audit-map th:first-child { position:sticky; left:0; z-index:1; background:#fff; }
  .jm-lab .audit-map thead th:first-child { z-index:2; }
  .jm-lab .report-table-scroll:has(.jm-mobile-report)::before { display:none; }
  .jm-lab .report-data-table.jm-mobile-report { display:block; width:100%; min-width:0; }
  .jm-lab .jm-mobile-report thead { position:absolute; width:1px; height:1px; clip-path:inset(50%); overflow:hidden; }
  .jm-lab .jm-mobile-report tbody { display:block; }
  .jm-lab .jm-mobile-report tbody tr { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:12px 20px; padding:22px 0; background:none; border-bottom:1px solid #dce3e9; }
  .jm-lab .jm-mobile-report tbody tr:nth-child(even) { background:none; }
  .jm-lab[data-tool] .report-data-table.jm-mobile-report tbody :is(th,td) { display:block; width:auto; min-width:0!important; padding:0!important; font-size:14px!important; font-weight:400; white-space:normal!important; border:0; background:none; text-align:left; }
  .jm-lab[data-tool] .report-data-table.jm-mobile-report tbody tr { background:none; }
  .jm-lab .jm-mobile-report :is(th,td):first-child { grid-column:1/-1; }
  .jm-lab .jm-mobile-report td:last-child { align-self:end; }
  .jm-lab .jm-mobile-report :is(th,td):before { content:attr(data-mobile-label); display:block; font-size:11px; font-weight:550; line-height:1.6; color:#687988; margin-bottom:3px; }
  .jm-lab .jm-mobile-report :is(th,td):first-child:before { display:none; }
  .jm-lab .jm-mobile-report .report-page-link { font-size:16px; white-space:normal; overflow-wrap:anywhere; }
  .jm-lab .jm-mobile-report .report-detail-button { min-height:44px; font-size:14px; }
  .jm-lab .audit-visual .jm-mobile-report tbody tr { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .jm-lab .audit-visual .jm-mobile-report tbody th { order:0; }
  .jm-lab .audit-visual .jm-mobile-report td:nth-child(3) { grid-column:1/-1; order:1; }
  .jm-lab .audit-visual .jm-mobile-report td:nth-child(2) { order:2; }
  .jm-lab .audit-visual .jm-mobile-report td:nth-child(4) { order:3; }
  .jm-lab .audit-visual .jm-mobile-report td:nth-child(5) { order:4; }
  .jm-lab .audit-visual .jm-mobile-report td:last-child { order:5; grid-column:1/-1; }
  .jm-lab .audit-visual .jm-mobile-report td:last-child:before { display:none; }
  .jm-lab .audit-page-dialog { width:calc(100% - 24px); max-height:calc(100dvh - 32px); padding:0; border-radius:9px; }
  .jm-lab .audit-page-dialog>header { gap:15px; padding:18px; }
  .jm-lab .audit-page-dialog>header h2 { font-size:20px; line-height:1.4; }
  .jm-lab .audit-page-dialog [data-dialog-close] { width:44px; height:44px; }
  .jm-lab .audit-page-dialog [data-dialog-body] { padding:0 18px 21px; }

  /* Footer links remain available in native, keyboard-operable sections. */
  body.jm-conexao .site-footer { padding-top:37px; }
  body.jm-conexao .site-footer .footer-directory { display:flex; gap:0; }
  body.jm-conexao .site-footer .footer-identity { order:0; display:grid; grid-template-columns:1fr; gap:13px; margin-bottom:26px; }
  body.jm-conexao .site-footer .footer-identity .brand { width:190px; height:63px; margin:0; }
  body.jm-conexao .site-footer .footer-identity .brand-art,body.jm-conexao .site-footer .footer-identity .brand-art img { width:190px!important; height:63px!important; }
  body.jm-conexao .site-footer .footer-identity>p { max-width:none; font-size:14px; line-height:1.7; }
  body.jm-conexao .site-footer .footer-contact { order:1; padding:0 0 23px; margin-bottom:8px; }
  body.jm-conexao .site-footer .footer-contact h2 { font-size:19px; margin-bottom:12px; }
  body.jm-conexao .site-footer .footer-contact>a.footer-contact-link { font-size:15px; min-height:44px; margin:0; gap:12px; }
  body.jm-conexao .site-footer .footer-nav { order:2; padding:0; }
  body.jm-conexao .site-footer .footer-services { order:3; }
  .jm-mobile-footer-section { border-top:1px solid rgb(255 255 255 / .22); }
  .jm-mobile-footer-section>summary { display:flex; align-items:center; justify-content:space-between; gap:15px; min-height:65px; cursor:pointer; list-style:none; color:#fff; }
  .jm-mobile-footer-section>summary::-webkit-details-marker { display:none; }
  .jm-mobile-footer-section>summary:after { content:'+'; font:400 25px/1 JMInter,Arial,sans-serif; }
  .jm-mobile-footer-section[open]>summary:after { content:'−'; }
  body.jm-conexao .site-footer .jm-mobile-footer-section h2 { font-size:18px; margin:0; }
  body.jm-conexao .site-footer .jm-mobile-footer-section h2:after { display:none; }
  body.jm-conexao .site-footer .jm-mobile-footer-section ul { display:grid; grid-template-columns:minmax(0,1fr); gap:0; padding-bottom:21px; }
  body.jm-conexao .site-footer .jm-mobile-footer-section a { display:flex; align-items:center; min-height:44px; padding:10px 0; font-size:15px; line-height:1.6; }
  body.jm-conexao .site-footer .footer-bottom { margin-top:19px; padding:18px 0 27px; font-size:12px; }
  body.jm-conexao .site-footer .footer-atmosphere { background-size:190px; opacity:.25; }
  body.jm-conexao .whatsapp-float { width:54px; height:54px; right:16px; bottom:calc(74px + env(safe-area-inset-bottom)); box-shadow:0 3px 12px rgb(0 45 84 / .17); }
  body.jm-conexao .whatsapp-float svg { width:30px; height:30px; }
  body.jm-conexao .back-to-top { width:44px; height:44px; right:21px; bottom:calc(18px + env(safe-area-inset-bottom)); }
  body.jm-conexao:has(main input:focus,main textarea:focus,main select:focus,.mobile-menu[open]) :is(.whatsapp-float,.back-to-top),body.jm-mobile-footer-visible :is(.whatsapp-float,.back-to-top),body.jm-mobile-conversion-visible :is(.whatsapp-float,.back-to-top) { opacity:0; visibility:hidden; pointer-events:none; }
  body.jm-conexao:not(.jm-blog) main.jm-document { padding-top:100px; padding-bottom:50px; }
  .jm-document h1 { font-size:33px; line-height:1.2; }
  .jm-document .entry-content { font-size:16.5px; line-height:1.85; }
  .jm-document .search-form { display:grid; gap:12px; margin-top:24px; }
  .jm-document .search-form label { display:grid; gap:8px; }
  .jm-document input[type=search] { width:100%; min-height:51px; border:1px solid #8092a4; border-radius:6px; padding:12px; font-size:16px; }
  .jm-document input[type=submit] { min-height:50px; padding:12px 20px; border:0; border-radius:6px; background:#5bdf66; color:#002d54; font:700 16px/1.5 JMManrope,Arial,sans-serif; }
  .jm-document .post h3 { font-size:24px; line-height:1.35; }
  .jm-document .post-excerpt { font-size:16px; line-height:1.8; }
}
@media screen and (max-width:380px) {
  .hero-personal h1 { font-size:32px; }
  .hero-personal .hero-kicker { font-size:11px; }
  .hero-personal .hero-description { font-size:16px; }
  .jm-blog main .blog-article-heading h1 { font-size:29px; }
  .jm-lab .audit-http-content { flex-direction:column; align-items:start; }
  .jm-lab .audit-http-legend { display:grid; width:100%; grid-template-columns:minmax(0,1fr); }
}
