/* Shared responsive refinements for React pages and WordPress content templates. */
@media (max-width: 1199px) {
  body .site-mobile-nav,
  body .goody-modern-mobile-nav {
    max-height: calc(100dvh - 100px - env(safe-area-inset-bottom, 0px));
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
  }
  body .site-menu-toggle,
  body .goody-modern-menu-button { min-width: 44px; min-height: 44px; }
  body .site-mobile-nav a,
  body .goody-modern-mobile-nav a { min-height: 44px; display: flex; align-items: center; }
}
@media (max-width: 767px) {
  html { scroll-padding-top: 24px; -webkit-text-size-adjust: 100%; }
  body { overflow-wrap: break-word; }
  body :is(main, section, article, aside, form, nav, header, footer) { min-width: 0; }
  body :is(h1, h2, h3) { text-wrap: balance; overflow-wrap: anywhere; }
  body :is(p, li) { text-wrap: pretty; }
  body :is(input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]), textarea, select) {
    max-width: 100%; min-height: 48px; font-size: 16px !important; line-height: 1.5;
  }
  body textarea { min-height: 120px; }
  body :is(button, a, input, textarea, select):focus-visible { outline: 3px solid #0877ff; outline-offset: 3px; }
  body :is(.page-shell, .one-stop-shell, .case-shell, .gc-shell) { width: calc(100% - 32px); }
  body :is(.hero-stage, .media-page-hero, .one-stop-hero, .pr-hero, .cloud-ai-hero, .case-hero) {
    padding-top: 120px;
  }
  body .home-page .hero-stage { min-height: 560px; padding-bottom: 64px; }
  body .home-page .hero-stage h1 { font-size: clamp(29px, 8vw, 36px); line-height: 1.25; letter-spacing: -.025em; }
  body .home-hero-phrase { display: block; white-space: nowrap; }
  body :is(.media-page-hero-content, .one-stop-hero-inner, .pr-hero-copy, .cloud-ai-hero-copy, .case-hero-copy) h1 {
    font-size: clamp(28px, 7.4vw, 34px); line-height: 1.3; letter-spacing: -.035em;
  }
  body :is(.hero-stage, .media-page-hero-content, .one-stop-hero-inner, .pr-hero-copy, .cloud-ai-hero-copy, .case-hero-copy) > p,
  body .hero-stage .relative > p { font-size: 15px; line-height: 1.85; }
  body .media-page-hero { min-height: 610px; }
  body .one-stop-hero { min-height: 560px; padding-bottom: 118px; }
  body .pr-hero { min-height: 580px; }
  body .cloud-ai-hero { min-height: 550px; }
  body .case-hero { padding-bottom: 72px; }
  body :is(.media-page-hero-actions, .one-stop-hero-actions, .pr-hero-actions, .cloud-ai-hero-actions, .case-hero-actions) {
    width: 100%; max-width: 100%; gap: 12px; margin-top: 28px;
  }
  body :is(.media-page-hero-actions, .one-stop-hero-actions, .pr-hero-actions, .cloud-ai-hero-actions, .case-hero-actions) a {
    width: 100%; min-width: 0; min-height: 48px; padding: 12px 18px; font-size: 15px;
  }
  body :is(.section-heading, .media-page-heading, .one-stop-section-heading, .pr-heading, .cloud-ai-heading, .case-section-heading) h2 {
    font-size: clamp(23px, 6.2vw, 28px); line-height: 1.4; letter-spacing: -.025em;
  }
  body :is(.section-heading, .media-page-heading, .one-stop-section-heading, .pr-heading, .cloud-ai-heading, .case-section-heading) p {
    font-size: 14px; line-height: 1.8;
  }
  body :is(.media-page-section, .media-page-industries-section, .media-page-content-section) { padding-block: 60px; }
  body .media-page-account-section { padding-top: 56px; }
  body .media-page-account-rail { scroll-snap-type: x proximity; scroll-padding-inline: 16px; overscroll-behavior-x: contain; }
  body .media-page-account-card { scroll-snap-align: start; flex-basis: min(278px, calc(100vw - 56px)); min-width: min(278px, calc(100vw - 56px)); }
  body .media-page-meta-copy { padding: 28px 22px; }
  body .media-page-meta-visual { min-height: 430px; }
  body .media-page-team-copy { min-height: 0; padding: 44px 24px; }
  body .media-page-team-photo { min-height: 300px; }
  body .about-intro-copy p { font-size: 15px; line-height: 1.9; }
  body :is(.one-stop-faq-answer, .pr-faq-answer, .cloud-ai-faq-answer, .media-page-faq-answer) p { font-size: 15px; line-height: 1.85; }
  body .one-stop-table-wrap { width: 100%; max-width: 100%; margin-right: 0; padding-right: 0; }
  body :is(.one-stop-table-wrap, .mobile-table-scroll) { overflow-x: auto; overscroll-behavior-x: contain; border: 1px solid #dce4ee; border-radius: 16px; }
  body .mobile-table-hint { margin: 0 0 10px; color: #626d7c; font-size: 13px; line-height: 1.6; }
  body .one-stop-process li > p { min-height: 0; }
  body .one-stop-brand-copy { min-height: 0; padding: 40px 24px; }
  body .one-stop-brand-photo { min-height: 0; aspect-ratio: 1.78; }
  body .one-stop-brand-photo img { position: static; width: 100%; height: 100%; object-fit: contain; }
  body .case-section { padding-block: 56px; }
  body .case-details-footer a { white-space: normal; text-align: center; line-height: 1.6; }
  body .case-filter-bar { max-width: 100%; overscroll-behavior-x: contain; }
  body .blog-hero__copy h1 { font-size: 36px; line-height: 1.25; }
  body :is(.blog-section-heading, .blog-subscribe) h2 { font-size: 28px; line-height: 1.4; }
  body .blog-category-nav { margin-right: 0; padding-right: 0; max-width: 100%; overscroll-behavior-x: contain; }
  body .blog-compact-card { grid-template-columns: 92px minmax(0, 1fr); gap: 14px; }
  body .blog-compact-card h3 { font-size: 16px; line-height: 1.55; }
  body .blog-articles { padding-block: 56px; }
  body :is(.contact-card, .one-stop-contact-form, .lead-form-card) { padding: 24px 20px; border-radius: 22px; }
  body :is(.contact-card h2, .one-stop-contact-heading h2, .lead-form-card__head h3) { font-size: 24px; line-height: 1.4; }
  body :is(.contact-card, .one-stop-contact-grid aside) figure { min-width: 0; }
  body .contact-card .flex:has(> figure) { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 28px; }
  body .contact-card .contact-qr { width: min(100%, 128px); height: auto; aspect-ratio: 1; margin-inline: auto; }
  body .one-stop-contact-grid aside > div { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body :is(.submit-button, .one-stop-submit, .wpcf7-submit, .lead-form-card button[type="submit"]) { width: 100%; min-height: 48px; font-size: 16px; white-space: normal; }
  body .shared-contact-section { padding-block: 56px; }
  body .site-footer { padding-top: 56px; padding-bottom: 48px; }
  body .site-footer > div { gap: 36px; }
  body .site-footer a { overflow-wrap: anywhere; }
  body .site-footer li a { display: inline-flex; align-items: center; min-height: 40px; }
  body .goody-global-icp { padding-bottom: calc(18px + env(safe-area-inset-bottom, 0px)); }
  /* Server-rendered academy, all articles, archives, search and legacy pages. */
  body.goody-modern .academy-v3-nav { max-width: 100%; margin-right: 0; padding-right: 0; overscroll-behavior-x: contain; }
  body.goody-modern .academy-v3-nav a { min-height: 48px; }
  body.goody-modern .academy-v3-masthead h1 { font-size: 36px; }
  body.goody-modern .academy-v3-masthead h2 { font-size: 22px; line-height: 1.5; }
  body.goody-modern .academy-v3-masthead p { font-size: 15px; line-height: 1.8; }
  body.goody-modern .academy-v3-feed article > a { grid-template-columns: 96px minmax(0, 1fr); gap: 12px; }
  body.goody-modern .academy-v3-feed h3 { font-size: 16px; line-height: 1.55; -webkit-line-clamp: 3; }
  body.goody-modern .academy-v3-secondary { grid-template-columns: 1fr; }
  body.goody-modern .academy-v3-secondary article + article { border-left: 0; border-top: 1px solid #e2e5eb; padding: 20px 0 0; }
  body.goody-modern .academy-v3-secondary h3 { font-size: 18px; line-height: 1.5; }
  body .single-hero { padding-block: 120px 36px; }
  body .single-hero h1 { font-size: clamp(27px, 7.2vw, 32px); line-height: 1.45; margin-block: 24px; }
  body .single-layout { padding-block: 28px 44px; gap: 28px; }
  body .single-content { font-size: 16px; line-height: 1.9; overflow-wrap: anywhere; }
  body .single-content :is(p, li) { font-size: inherit; line-height: inherit; }
  body .single-content h2 { font-size: 24px; line-height: 1.5; }
  body .single-content h3 { font-size: 20px; line-height: 1.5; }
  body .single-content img { max-width: 100%; height: auto; }
  body .single-content :is(pre, iframe, figure) { max-width: 100%; }
  body .single-content pre { overflow-x: auto; white-space: pre; font-size: 14px; }
  body .mobile-table-scroll table { min-width: 580px; width: 100%; margin: 0; }
  body .single-toc { padding: 18px 20px; }
  body .single-toc summary { min-height: 32px; cursor: pointer; font-size: 17px; font-weight: 700; }
  body .single-toc details[open] summary { margin-bottom: 16px; }
  body .single-toc a { display: block; padding-block: 6px; font-size: 14px; line-height: 1.7; }
  body .single-meta-row { flex-wrap: wrap; }
  body :is(.single-meta-row, .pagination, .page-numbers) a { min-height: 44px; }
  body .lead-form-card__note > div { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  body .lead-form-card__note figure { min-width: 0; }
  body .lead-form-card__note img { width: min(100%, 128px); height: auto; }
  body .goody-modern-footer { padding-top: 52px; }
  body .goody-modern-footer a { overflow-wrap: anywhere; }
  body :is(.service-hero-grid, .rich-overview__grid, .archive-layout, .search-results-grid) { min-width: 0; }
  body :is(.service-hero, .page-hero, .archive-hero) h1 { font-size: 30px; line-height: 1.4; }
}
@media (max-width: 359px) {
  body :is(.page-shell, .one-stop-shell, .case-shell, .gc-shell) { width: calc(100% - 28px); }
  body .contact-card { padding-inline: 16px; }
  body .case-team-logo { width: 78px; }
  body.goody-modern .academy-v3-feed article > a { grid-template-columns: 80px minmax(0, 1fr); }
}
@media (min-width: 768px) and (max-width: 1023px) {
  body .contact-card { padding: 30px; }
  body .single-layout { grid-template-columns: minmax(0, 1fr); }
  body :is(.single-left, .single-right) { position: static; }
  body .single-content { max-width: 100%; }
}
@media (min-width: 768px) { .mobile-table-hint { display: none; } }
@media (max-width: 840px) {
  body.goody-modern .academy-v3-course--blue { margin-inline: 0; border-radius: 16px; }
}

/* Mobile visual rhythm refresh — 2.0.56 */
@media (max-width: 767px) {
  /* A tighter chrome gives every page more useful space above the fold. */
  body header:has(.site-logo) {
    padding: 12px 12px 0;
  }

  body header:has(.site-logo) > div:first-child {
    min-height: 56px;
    border-radius: 20px;
    padding-inline: 18px 10px;
    box-shadow: 0 10px 30px rgb(20 20 16 / 0.12);
  }

  body .site-logo { min-width: 0; }
  body .site-brand-logo { width: 122px; }
  body .site-menu-toggle { width: 42px; height: 42px; }
  body .site-mobile-nav {
    margin-top: 8px;
    border-radius: 20px;
    padding: 8px;
  }

  /* Shared mobile typography and section cadence. */
  body :is(.section-heading, .about-heading, .media-page-heading, .one-stop-section-heading, .pr-heading, .cloud-ai-heading, .case-section-heading) {
    max-width: none;
    margin-inline: 0;
    margin-bottom: 26px;
    text-align: left;
  }

  body :is(.section-heading, .about-heading, .media-page-heading, .one-stop-section-heading, .pr-heading, .cloud-ai-heading, .case-section-heading) h2 {
    font-size: clamp(24px, 6.8vw, 29px);
    line-height: 1.32;
    letter-spacing: -0.035em;
  }

  body :is(.section-heading, .about-heading, .media-page-heading, .one-stop-section-heading, .pr-heading, .cloud-ai-heading, .case-section-heading) p {
    margin-top: 10px;
    font-size: 14px;
    line-height: 1.75;
  }

  body :is(.platform-card, .cloud-card, .case-card, .contact-card) {
    border-radius: 22px;
  }

  /* Homepage: editorial hero, compact proof points and swipeable card groups. */
  body .home-page .hero-stage {
    min-height: 0;
    padding: 108px 0 68px;
    border-bottom-left-radius: 26px;
    border-bottom-right-radius: 26px;
  }

  body .home-page .hero-stage > div {
    width: min(100% - 32px, 1200px);
    align-items: flex-start;
    padding-inline: 0;
    text-align: left;
  }

  body .home-page .hero-stage h1 {
    max-width: 340px;
    font-size: clamp(32px, 9vw, 40px);
    line-height: 1.12;
    letter-spacing: -0.045em;
  }

  body .home-page .home-hero-phrase { white-space: normal; }
  body .home-page .hero-stage p {
    margin-top: 18px;
    font-size: 15px;
    line-height: 1.8;
    color: #41413c;
  }

  body .home-page .hero-stage p br { display: none; }
  body .home-page .hero-stage p + div {
    max-width: none;
    margin-top: 28px;
    gap: 10px;
  }

  body .home-page .hero-stage p + div > a {
    min-height: 50px;
    padding-inline: 16px;
  }

  body .home-page .stats-shell {
    width: 100%;
    margin-top: 0;
    padding: 14px 0 52px 16px;
  }

  body .home-page .stats-panel {
    display: flex;
    gap: 10px;
    overflow-x: auto;
    border-radius: 0;
    background: transparent;
    padding-right: 16px;
    scroll-padding-inline: 16px;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
  }

  body .home-page .stats-panel::-webkit-scrollbar { display: none; }
  body .home-page .stats-panel > div {
    min-height: 96px;
    flex: 0 0 148px;
    border: 1px solid #eceef2 !important;
    border-radius: 20px;
    background: #f7f8fb;
    padding: 18px 12px;
    scroll-snap-align: start;
  }

  body .home-page .stats-panel strong { font-size: 25px; }
  body .home-page .stats-panel span { margin-top: 6px; line-height: 1.45; }

  body .home-page :is(#media, #team, #resources, #cloud) { padding-bottom: 56px; }
  body .home-page main > section:nth-of-type(7) { padding-block: 56px; }
  body .home-page #insights { padding-bottom: 48px; }

  body .home-page #media > div.mt-7 {
    display: flex;
    gap: 12px;
    overflow-x: auto;
    margin-right: -16px;
    padding-right: 16px;
    scroll-padding-inline: 16px;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
  }

  body .home-page #media > div.mt-7::-webkit-scrollbar { display: none; }
  body .home-page .platform-card {
    min-height: 292px;
    flex: 0 0 min(82vw, 310px);
    padding: 24px;
    scroll-snap-align: start;
  }

  body .home-page .service-row {
    display: grid;
    gap: 16px;
    border: 1px solid #ececea;
    border-radius: 22px;
    background: #fafafa;
    padding: 20px;
  }

  body .home-page .service-track { display: none; }
  body .home-page .service-steps-grid { gap: 8px; }
  body .home-page .service-step {
    min-height: 48px;
    justify-content: center;
    border-radius: 14px;
    padding: 9px 8px;
  }

  body .home-page .resource-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }

  body .home-page :is(.resource-main, .resource-blue) {
    grid-column: 1 / -1;
    min-height: 228px;
  }

  body .home-page :is(.resource-orange, .resource-dark) {
    min-height: 164px;
    padding: 22px 18px;
  }

  body .home-page .resource-card { border-radius: 22px; padding: 28px 24px; }
  body .home-page .resource-number { font-size: 38px; }
  body .home-page .resource-number-wide { font-size: 32px; }
  body .home-page .resource-card h3 { font-size: 15px; line-height: 1.45; }

  body .home-page div.grid:has(> .case-card) {
    display: flex;
    gap: 12px;
    overflow-x: auto;
    margin-right: -16px;
    padding: 4px 16px 22px 0;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
  }

  body .home-page div.grid:has(> .case-card)::-webkit-scrollbar { display: none; }
  body .home-page .case-card {
    flex: 0 0 min(82vw, 310px);
    padding: 24px;
    scroll-snap-align: start;
  }

  body .home-page .article-grid {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  body .home-page .article-card {
    display: grid;
    min-height: 126px;
    grid-template-columns: 112px minmax(0, 1fr);
    border-radius: 20px;
  }

  body .home-page .article-cover { height: 100%; min-height: 126px; }
  body .home-page .article-card > div:last-child { padding: 16px; }
  body .home-page .article-card h3 { font-size: 15px; line-height: 1.55; }
  body .home-page .article-card > div:last-child > div {
    margin-top: 12px;
    flex-direction: row;
    align-items: center;
  }

  /* Service-page heroes should read immediately, without a desktop-sized blank band. */
  body :is(.media-page-hero, .one-stop-hero, .pr-hero, .cloud-ai-hero, .case-hero) {
    min-height: 0;
    padding: 108px 0 64px;
  }

  body :is(.media-page-hero-content, .one-stop-hero-inner, .pr-hero-copy, .cloud-ai-hero-copy, .case-hero-copy) {
    padding-top: 0;
    text-align: left;
  }

  body :is(.media-page-hero-content, .one-stop-hero-inner, .pr-hero-copy, .cloud-ai-hero-copy, .case-hero-copy) h1 {
    max-width: 360px;
    font-size: clamp(30px, 8.2vw, 37px);
    line-height: 1.18;
    letter-spacing: -0.045em;
  }

  body :is(.media-page-hero-content, .one-stop-hero-inner, .pr-hero-copy, .cloud-ai-hero-copy, .case-hero-copy) > p {
    margin-top: 18px;
    font-size: 15px;
    line-height: 1.75;
  }

  body :is(.media-page-hero-content, .one-stop-hero-inner, .pr-hero-copy, .cloud-ai-hero-copy, .case-hero-copy) > p br {
    display: none;
  }

  body :is(.media-page-hero-actions, .one-stop-hero-actions, .pr-hero-actions, .cloud-ai-hero-actions, .case-hero-actions) {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 26px;
  }

  body :is(.media-page-hero-actions, .one-stop-hero-actions, .pr-hero-actions, .cloud-ai-hero-actions, .case-hero-actions) a {
    width: 100%;
    min-height: 48px;
    padding-inline: 12px;
    font-size: 13px;
  }

  body .one-stop-hero { padding-bottom: 104px; }
  body .one-stop-hero-ribbon { height: 105px; }
  body .pr-hero { background-position: center bottom; }
  body .cloud-ai-promise { min-height: 92px; padding: 20px 24px; }
  body .cloud-ai-promise p { font-size: 18px; line-height: 1.55; }
  body .case-hero-inner { gap: 34px; }

  /* About: keep the brand reveal, but remove the oversized empty transition. */
  body .about-hero { padding: 112px 0 30px; }
  body .about-hero-brand { width: min(280px, 72vw); padding-inline: 0; }
  body .about-hero-slogan { margin: 8px 0 0; font-size: 13px; }
  body .about-intro {
    margin-top: 48px;
    border-radius: 22px;
    padding: 48px 22px 30px;
  }
  body .about-intro h1 {
    top: -22px;
    min-width: 0;
    width: calc(100% - 32px);
    padding: 13px 48px 13px 20px;
  }
  body .about-intro-copy { gap: 16px; font-size: 15px; line-height: 1.9; }
  body .about-mission-grid { margin-top: 26px; }
  body .about-mission-card { min-height: 170px; }
  body :is(.about-section, .about-content-section, .about-interviews-section) { padding-block: 56px 64px; }
  body .about-cert-section { padding-block: 48px 64px; }

  /* Long service pages: reduce stacked card fatigue while preserving all content. */
  body :is(.media-page-section, .media-page-industries-section, .media-page-content-section, .media-page-process-section, .media-page-advantages-section, .one-stop-section, .case-section) {
    padding-block: 52px 60px;
  }

  body :is(.media-page-industry-card, .media-page-process-grid article, .one-stop-team-grid article, .pr-stat, .cloud-ai-blue-stat) {
    border-radius: 20px;
  }

  body .media-page-industry-card { padding: 24px 20px; }
  body .media-page-process-grid article { min-height: 180px; }
  body .one-stop-team-grid article { min-height: 170px; padding: 62px 22px 24px; }
  body .one-stop-process li > p { min-height: 0; }
  body .one-stop-cta-banner,
  body .one-stop-cta-inner { min-height: 510px; }
  body .one-stop-brand-copy { min-height: 0; }

  body :is(.pr-stats-grid, .cloud-ai-hero-stats, .cloud-ai-benefits, .cloud-ai-insight-stats) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }

  body .pr-stats-grid { margin-top: 28px; }
  body .cloud-ai-hero-stats { padding-block: 32px 52px; }
  body :is(.pr-stat, .cloud-ai-blue-stat) { min-height: 96px; padding: 16px; }

  /* Blog and articles: stronger reading hierarchy on narrow screens. */
  body .blog-hero { padding-top: 102px; }
  body .blog-hero__grid { gap: 30px; padding-bottom: 42px; }
  body .blog-hero__copy h1 { font-size: 36px; line-height: 1.14; }
  body .blog-articles { padding-block: 52px 60px; }
  body .blog-section-heading h2 { font-size: 28px; line-height: 1.3; }
  body .blog-card-grid { margin-top: 36px; }
  body .blog-subscribe { margin-block: 52px; padding: 34px 22px; }
  body .blog-subscribe h2 { font-size: 28px; }

  body .single-hero { padding: 104px 0 30px; }
  body .single-hero h1 { font-size: clamp(28px, 7.4vw, 34px); line-height: 1.35; }
  body .single-layout { padding-block: 24px 48px; }
  body .single-content { font-size: 17px; line-height: 1.9; }
  body .single-content h2 { margin-top: 2.2em; font-size: 25px; }
  body .single-content h3 { margin-top: 1.8em; font-size: 21px; }

  body .shared-contact-section { padding-block: 48px 56px; }
  body :is(.contact-card, .one-stop-contact-form, .lead-form-card) { padding: 22px 18px; }
  body .site-footer { padding-top: 48px; padding-bottom: 42px; }
}

@media (max-width: 359px) {
  body :is(.media-page-hero-actions, .one-stop-hero-actions, .pr-hero-actions, .cloud-ai-hero-actions, .case-hero-actions) {
    grid-template-columns: 1fr;
  }

  body .home-page .resource-grid { grid-template-columns: 1fr; }
  body .home-page :is(.resource-main, .resource-blue) { grid-column: auto; }
}
