/* Gotek 1.11.16 — authoritative responsive experience.
 * This file owns mobile motion, navigation, footer, ecosystem and the
 * product/service rails. Keep it last in the stylesheet dependency chain. */

:root {
  --gotek-motion-ui: 220ms;
  --gotek-motion-section: 580ms;
  --gotek-motion-ease: cubic-bezier(.2,.8,.2,1);
}

.gotek-footer-accordion__trigger { display: none; }
.gotek-footer-accordion__panel { display: grid; }

@media (min-width: 821px) {
  html body footer.gotek-footer .gotek-footer-accordion__panel {
    row-gap: 6px;
  }

  html body footer.gotek-footer .gotek-footer-accordion__panel > a {
    display: flex;
    min-height: 26px;
    align-items: center;
    line-height: 1.5;
  }
}

@media (max-width: 1180px) {
  html body .mobile-menu {
    box-sizing: border-box !important;
    top: calc(max(8px, env(safe-area-inset-top)) + 68px) !important;
    right: max(8px, env(safe-area-inset-right)) !important;
    bottom: max(8px, env(safe-area-inset-bottom)) !important;
    left: max(8px, env(safe-area-inset-left)) !important;
    display: grid !important;
    grid-template-rows: 44px minmax(0, 1fr) 50px !important;
    gap: 10px !important;
    width: auto !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    padding: 12px !important;
    overflow: hidden !important;
    border: 1px solid rgba(15,49,94,.1) !important;
    border-radius: 20px !important;
    background: rgba(255,255,255,.99) !important;
    box-shadow: 0 22px 64px rgba(4,25,59,.2) !important;
  }

  html body .mobile-menu > .mobile-language-switch {
    box-sizing: border-box !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 44px !important;
    margin: 0 !important;
    padding: 4px !important;
    border: 0 !important;
    border-radius: 12px !important;
    background: #eef3f9 !important;
  }

  html body .mobile-menu nav {
    box-sizing: border-box !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    max-height: none !important;
    padding: 0 2px !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
    scrollbar-width: thin;
    scrollbar-color: #bfd0e5 transparent;
  }

  html body .mobile-menu :where(.gt-nav-list,.gt-nav-node,.gt-nav-row,.gt-submenu-shell,.gt-submenu) {
    box-sizing: border-box !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin-inline: 0 !important;
  }

  html body .mobile-menu .gt-nav-row {
    display: flex !important;
    min-height: 48px !important;
    align-items: center !important;
    border-bottom: 1px solid #e7edf5 !important;
  }

  html body .mobile-menu nav .gt-nav-link {
    box-sizing: border-box !important;
    display: flex !important;
    flex: 1 1 auto !important;
    min-width: 0 !important;
    min-height: 48px !important;
    align-items: center !important;
    padding: 10px 8px !important;
    color: #10285b !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    line-height: 1.35 !important;
    white-space: normal !important;
  }

  html body .mobile-menu .gt-submenu-toggle {
    box-sizing: border-box !important;
    flex: 0 0 44px !important;
    width: 44px !important;
    height: 44px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 10px !important;
    color: #315173 !important;
    background: transparent !important;
    box-shadow: none !important;
    outline: 0 !important;
  }

  html body .mobile-menu .gt-submenu-toggle:focus-visible {
    outline: 2px solid #16b8df !important;
    outline-offset: 2px !important;
    background: #edf7ff !important;
  }

  html body .mobile-menu .gt-submenu-shell {
    max-height: 0 !important;
    overflow: hidden !important;
    opacity: 0 !important;
    transition: max-height 260ms var(--gotek-motion-ease), opacity 180ms ease !important;
  }

  html body .mobile-menu .gt-nav-node.is-submenu-open > .gt-submenu-shell {
    max-height: 620px !important;
    opacity: 1 !important;
  }

  html body .mobile-menu .gt-services-menu .gt-submenu-depth-1 {
    display: grid !important;
    gap: 7px !important;
    padding: 9px 0 10px !important;
  }

  html body .mobile-menu .gt-services-menu .gt-submenu-depth-1 > .gt-nav-node {
    margin: 0 !important;
    overflow: hidden !important;
    border: 0 !important;
    border-radius: 13px !important;
    background: #f1f6fc !important;
  }

  html body .mobile-menu .gt-services-menu .gt-submenu-depth-1 .gt-nav-row {
    min-height: 58px !important;
    border: 0 !important;
  }

  html body .mobile-menu .gt-services-menu .gt-service-link {
    display: grid !important;
    grid-template-columns: 42px minmax(0,1fr) 18px !important;
    gap: 10px !important;
    width: 100% !important;
    min-height: 58px !important;
    padding: 8px 10px !important;
    border: 0 !important;
    border-radius: 13px !important;
  }

  html body .mobile-menu .gt-service-link__visual {
    display: grid !important;
    width: 42px !important;
    height: 42px !important;
    place-items: center !important;
  }

  html body .mobile-menu .gt-service-link__visual img {
    width: 40px !important;
    height: 40px !important;
    object-fit: contain !important;
  }

  html body .mobile-menu .gt-service-link__copy { min-width: 0 !important; }
  html body .mobile-menu .gt-service-link__copy strong {
    display: block !important;
    color: #10285b !important;
    font-size: 12.5px !important;
    line-height: 1.35 !important;
    overflow-wrap: break-word !important;
  }
  html body .mobile-menu .gt-service-link__copy small { display: none !important; }
  html body .mobile-menu .gt-service-link__arrow {
    width: 18px !important;
    color: #0667e8 !important;
    font-size: 14px !important;
    text-align: center !important;
  }

  html body .mobile-menu .mobile-project-cta {
    box-sizing: border-box !important;
    display: flex !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 50px !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: 0 16px !important;
    border-radius: 14px !important;
    font-size: 13px !important;
  }
}

@media (max-width: 820px) {
  html body main { overflow-x: clip; }

  /* Continuous, reversible three-scene hero. */
  html body.home .hero-sequence {
    height: 300svh !important;
    height: 300dvh !important;
    min-height: 300svh !important;
    min-height: 300dvh !important;
    overflow: visible !important;
  }

  body.home .hero-stage {
    position: sticky !important;
    top: 0 !important;
    height: 100svh !important;
    height: 100dvh !important;
    min-height: 100svh !important;
    min-height: 100dvh !important;
    overflow: hidden !important;
  }

  body.home .hero-media {
    transform: translate3d(0,var(--gotek-hero-media-y,0),0) scale(var(--gotek-hero-media-scale,1.035)) !important;
    transform-origin: center center !important;
    will-change: transform;
  }

  body.home .hero-beat-origin,
  body.home .hero-beat-bridge,
  body.home .hero-beat-global,
  body.home .hero-sequence[data-hero-scene] :is(.hero-beat-origin,.hero-beat-bridge,.hero-beat-global) {
    display: grid !important;
    visibility: visible !important;
    opacity: var(--gotek-scene-opacity,0) !important;
    transform: translate3d(0,var(--gotek-scene-y,18px),0) !important;
    transition: none !important;
    will-change: transform,opacity;
  }

  body.home .hero-sequence[data-hero-scene] .hero-beat.is-active { pointer-events: auto !important; }
  body.home .hero-sequence[data-hero-scene] .hero-beat:not(.is-active) { pointer-events: none !important; }

  /* One lightweight reveal system for every mobile route. */
  html body .mobile-reveal {
    visibility: visible !important;
    opacity: 0 !important;
    transform: translate3d(0,16px,0) !important;
    transition: opacity 480ms ease, transform var(--gotek-motion-section) var(--gotek-motion-ease) !important;
  }

  html body .mobile-reveal.mobile-inview {
    opacity: 1 !important;
    transform: translate3d(0,0,0) !important;
  }

  html body .mobile-reveal [data-reveal-item] {
    opacity: 0;
    transform: translate3d(0,12px,0);
    transition: opacity 420ms ease var(--gotek-reveal-delay,0ms), transform 520ms var(--gotek-motion-ease) var(--gotek-reveal-delay,0ms);
  }

  html body .mobile-reveal.mobile-inview [data-reveal-item] {
    opacity: 1;
    transform: translate3d(0,0,0);
  }

  /* Compact footer: brand and contact stay visible; navigation folds. */
  html body footer.site-footer.gotek-footer.page-shell,
  html body footer.site-footer.gotek-footer {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: none !important;
    margin: 28px 0 0 !important;
    overflow: hidden !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: #fff !important;
    box-shadow: none !important;
  }

  html body footer.gotek-footer .gotek-footer-cta {
    gap: 22px !important;
    padding: 30px 18px 26px !important;
    background: linear-gradient(135deg,#edf7ff 0%,#dff3ff 100%) !important;
  }

  html body footer.site-footer.gotek-footer .gotek-footer-cta h2 {
    max-width: 18ch !important;
    font-size: clamp(26px,7.5vw,31px) !important;
    line-height: 1.18 !important;
  }

  html body footer.gotek-footer .gotek-footer-cta > a {
    width: min(100%,310px) !important;
    min-height: 50px !important;
  }

  html body footer.gotek-footer .gotek-footer-main {
    display: grid !important;
    grid-template-columns: minmax(0,1fr) !important;
    gap: 0 !important;
    padding: 24px 18px 10px !important;
  }

  html body footer.gotek-footer .gotek-footer-brand {
    grid-column: 1 !important;
    min-width: 0 !important;
    padding: 0 0 22px !important;
  }

  html body footer.gotek-footer .gotek-footer-logo { margin-bottom: 10px !important; }
  html body footer.gotek-footer .gotek-footer-logo img { width: 118px !important; height: auto !important; }
  html body footer.gotek-footer .gotek-footer-brand > p {
    max-width: 38ch !important;
    margin: 0 0 16px !important;
    font-size: 13.5px !important;
    line-height: 1.65 !important;
  }

  html body footer.gotek-footer .gotek-footer-social { gap: 8px !important; }
  html body footer.gotek-footer .gotek-footer-social a {
    box-sizing: border-box !important;
    width: 44px !important;
    height: 44px !important;
    border: 0 !important;
    border-radius: 12px !important;
    background: #f2f6fb !important;
    box-shadow: none !important;
  }

  html body footer.gotek-footer .gotek-footer-accordion {
    grid-column: 1 !important;
    gap: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-top: 1px solid #e3eaf2 !important;
  }

  html body footer.gotek-footer .gotek-footer-accordion__heading { display: none !important; }
  html body footer.gotek-footer .gotek-footer-accordion__trigger {
    box-sizing: border-box !important;
    display: flex !important;
    width: 100% !important;
    min-height: 52px !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    color: #0a1a4f !important;
    background: transparent !important;
    box-shadow: none !important;
    font: 700 14px/1.35 "Be Vietnam Pro",system-ui,sans-serif !important;
    text-align: left !important;
  }

  html body footer.gotek-footer .gotek-footer-accordion__trigger svg {
    width: 18px !important;
    height: 18px !important;
    transition: transform var(--gotek-motion-ui) ease !important;
  }
  html body footer.gotek-footer .gotek-footer-accordion__trigger[aria-expanded="true"] svg { transform: rotate(180deg); }
  html body footer.gotek-footer .gotek-footer-accordion__trigger:focus-visible {
    outline: 2px solid #0871ef !important;
    outline-offset: 3px !important;
  }

  html body footer.gotek-footer .gotek-footer-accordion__panel {
    display: grid !important;
    width: 100% !important;
    padding: 0 0 10px !important;
  }
  html body footer.gotek-footer .gotek-footer-accordion__panel[hidden] { display: none !important; }
  html body footer.gotek-footer .gotek-footer-accordion__panel > a {
    box-sizing: border-box !important;
    display: flex !important;
    min-height: 44px !important;
    align-items: center !important;
    padding: 7px 0 !important;
    border: 0 !important;
    color: #536985 !important;
    font-size: 13px !important;
    line-height: 1.45 !important;
  }

  html body footer.gotek-footer .gotek-footer-info {
    grid-column: 1 !important;
    gap: 2px !important;
    padding: 18px 0 10px !important;
    border: 0 !important;
    border-top: 1px solid #e3eaf2 !important;
  }
  html body footer.gotek-footer .gotek-footer-info h3 { margin: 0 0 8px !important; font-size: 14px !important; }
  html body footer.gotek-footer .gotek-footer-info :is(a,address) {
    box-sizing: border-box !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }
  html body footer.gotek-footer .gotek-footer-info > a,
  html body footer.gotek-footer .gotek-footer-info-contact,
  html body footer.gotek-footer .gotek-footer-office-title {
    display: flex !important;
    min-height: 44px !important;
    align-items: center !important;
    overflow-wrap: anywhere !important;
    font-size: 13px !important;
  }

  html body footer.gotek-footer .gotek-footer-base {
    display: grid !important;
    grid-template-columns: minmax(0,1fr) !important;
    gap: 8px !important;
    padding: 16px 18px max(22px,env(safe-area-inset-bottom)) !important;
    border-top: 1px solid #e3eaf2 !important;
    text-align: left !important;
  }
  html body footer.gotek-footer .gotek-footer-base > * {
    grid-column: 1 !important;
    justify-self: start !important;
    min-height: 24px !important;
    white-space: normal !important;
  }
  html body footer.gotek-footer .gotek-back-to-top { min-height: 44px !important; }

  /* Ecosystem: one visual surface per idea, never a border inside a border. */
  html body main .ecosystem-system-layout,
  html body main .gotek-service-ecosystem .ecosystem-system-layout {
    box-sizing: border-box !important;
    display: grid !important;
    grid-template-columns: minmax(0,1fr) !important;
    gap: 12px !important;
    width: calc(100% - 32px) !important;
    margin-inline: auto !important;
    padding: 0 !important;
    overflow: visible !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  html body main .ecosystem-master,
  html body main .gotek-service-ecosystem .ecosystem-master {
    box-sizing: border-box !important;
    width: 100% !important;
    min-width: 0 !important;
    padding: 22px 18px !important;
    border: 0 !important;
    border-radius: 18px !important;
    background: #eef7ff !important;
    box-shadow: none !important;
  }

  html body main .ecosystem-unit-list,
  html body main .gotek-service-ecosystem .ecosystem-unit-list {
    display: grid !important;
    grid-template-rows: none !important;
    gap: 10px !important;
    width: 100% !important;
    min-width: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
  }

  html body main .ecosystem-unit,
  html body main .gotek-service-ecosystem .ecosystem-unit {
    box-sizing: border-box !important;
    display: grid !important;
    grid-template-columns: minmax(0,1fr) 20px !important;
    grid-template-rows: auto auto !important;
    gap: 12px !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    padding: 18px !important;
    overflow: hidden !important;
    border: 0 !important;
    border-radius: 16px !important;
    background: #f7f9fc !important;
    box-shadow: none !important;
    text-align: left !important;
  }
  html body main .ecosystem-unit::before { display: none !important; }

  html body main .ecosystem-unit-logo,
  html body main .gotek-service-ecosystem .ecosystem-unit-logo {
    grid-column: 1 / -1 !important;
    grid-row: 1 !important;
    display: flex !important;
    width: 100% !important;
    height: 56px !important;
    min-height: 56px !important;
    align-items: center !important;
    justify-content: flex-start !important;
    overflow: hidden !important;
    border: 0 !important;
    background: transparent !important;
  }
  html body main .ecosystem-unit-logo > img,
  html body main .gotek-service-ecosystem .ecosystem-unit-logo > img {
    width: auto !important;
    max-width: min(150px,72%) !important;
    height: auto !important;
    max-height: 54px !important;
    object-fit: contain !important;
    object-position: left center !important;
  }
  html body main .ecosystem-unit-copy {
    grid-column: 1 !important;
    grid-row: 2 !important;
    min-width: 0 !important;
    text-align: left !important;
  }
  html body main .ecosystem-unit-copy :is(h3,strong) {
    font-size: clamp(17px,5vw,19px) !important;
    line-height: 1.35 !important;
  }
  html body main .ecosystem-unit-copy p {
    max-width: 100% !important;
    margin: 6px 0 0 !important;
    color: #536985 !important;
    font-size: 14px !important;
    line-height: 1.62 !important;
    overflow-wrap: break-word !important;
    text-align: left !important;
  }
  html body main .ecosystem-unit > svg {
    grid-column: 2 !important;
    grid-row: 2 !important;
    align-self: start !important;
    justify-self: end !important;
  }

  /* Product/service rails remain swipeable without clipping labels. */
  body.home .services-showcase__tabs {
    box-sizing: border-box !important;
    display: flex !important;
    gap: 8px !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 16px 8px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scroll-snap-type: x proximity !important;
    scrollbar-width: none !important;
  }
  body.home .services-showcase__tabs > * {
    flex: 0 0 auto !important;
    min-width: 0 !important;
    min-height: 46px !important;
    scroll-snap-align: start !important;
  }
  body.home .services-showcase__viewport {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scroll-snap-type: x mandatory !important;
    scrollbar-width: none !important;
  }
  body.home .services-product-card {
    box-sizing: border-box !important;
    flex: 0 0 calc(100vw - 40px) !important;
    width: calc(100vw - 40px) !important;
    max-width: calc(100vw - 40px) !important;
    min-width: 0 !important;
    grid-template-columns: minmax(0,1fr) !important;
    scroll-snap-align: center !important;
    overflow: hidden !important;
  }
  body.home :where(.services-product-card,.product-matrix article,.services-showcase article) :where(h3,p,div) { min-width: 0 !important; }

  /* One boundary at most between adjacent editorial sections. */
  body.home main > section + section,
  body:is(.gotek-hosting-service-page,.gotek-website-service-page,.gotek-saas-service-page) main > section,
  body:is(.gotek-hosting-service-page,.gotek-website-service-page,.gotek-saas-service-page) main > div > section {
    border-top: 0 !important;
  }

  html body main section :is(h1,h2) {
    max-width: 100% !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    hyphens: none !important;
    text-wrap: balance;
  }
  body.home main section h2,
  body:is(.gotek-hosting-service-page,.gotek-website-service-page,.gotek-saas-service-page) main section h2 {
    font-size: clamp(28px,7.8vw,35px) !important;
    line-height: 1.16 !important;
  }
}

@media (max-width: 359px) {
  html body .mobile-menu { left: 7px !important; right: 7px !important; padding: 10px !important; }
  html body .mobile-menu nav .gt-nav-link { font-size: 14.5px !important; }
  html body footer.gotek-footer .gotek-footer-main { padding-inline: 16px !important; }
  html body main .ecosystem-system-layout,
  html body main .gotek-service-ecosystem .ecosystem-system-layout { width: calc(100% - 24px) !important; }
}

@media (prefers-reduced-motion: reduce) {
  html body .mobile-menu,
  html body .mobile-menu .gt-submenu-shell,
  html body .gotek-footer-accordion__trigger svg,
  html body .mobile-reveal,
  html body .mobile-reveal [data-reveal-item] {
    transition: none !important;
    animation: none !important;
  }

  html body .mobile-reveal,
  html body .mobile-reveal.mobile-inview,
  html body .mobile-reveal [data-reveal-item] {
    visibility: visible !important;
    opacity: 1 !important;
    transform: none !important;
  }
}

@media (max-width: 820px) and (prefers-reduced-motion: reduce) {
  html body.home .hero-sequence {
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
  }
  html body.home .hero-sequence > .hero-stage {
    position: relative !important;
    display: grid !important;
    grid-template-columns: minmax(0,1fr) !important;
    grid-template-rows: repeat(3,minmax(100svh,auto)) !important;
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
    background: #061330 !important;
  }
  html body.home .hero-media {
    position: absolute !important;
    inset: 0 !important;
    transform: none !important;
  }
  html body.home .hero-beat-origin,
  html body.home .hero-beat-bridge,
  html body.home .hero-beat-global,
  html body.home .hero-sequence[data-hero-scene] :is(.hero-beat-origin,.hero-beat-bridge,.hero-beat-global) {
    position: relative !important;
    inset: auto !important;
    grid-area: auto !important;
    min-height: 100svh !important;
    opacity: 1 !important;
    transform: none !important;
    pointer-events: auto !important;
  }
  html body.home .hero-sequence-status { display: none !important; }
}

/* Mobile information architecture — standard routes only.
 * These rules intentionally come last so older responsive layers cannot turn
 * the desktop narrative back into an overlong mobile page. */
@media (max-width: 820px) {
  /* The mobile home opens with one complete thought, then services. */
  html body.home .hero-sequence {
    height: auto !important;
    min-height: clamp(620px, 92svh, 760px) !important;
    overflow: hidden !important;
  }

  html body.home .hero-sequence > .hero-stage {
    position: relative !important;
    top: auto !important;
    height: auto !important;
    min-height: clamp(620px, 92svh, 760px) !important;
    overflow: hidden !important;
  }

  html body.home .hero-sequence .hero-media {
    position: absolute !important;
    inset: 0 !important;
    transform: none !important;
    will-change: auto !important;
  }

  html body.home .hero-sequence .hero-beat-origin {
    display: grid !important;
    position: relative !important;
    inset: auto !important;
    width: 100% !important;
    min-height: clamp(620px, 92svh, 760px) !important;
    align-content: center !important;
    padding: 96px 16px 82px !important;
    visibility: visible !important;
    opacity: 1 !important;
    transform: none !important;
    pointer-events: auto !important;
  }

  html body.home .hero-sequence :is(.hero-beat-bridge,.hero-beat-global,.hero-handoff,.hero-journey-index,.hero-sequence-status) {
    display: none !important;
  }

  html body.home .hero-global-followup { display: none !important; }

  /* Partner/technology marquee becomes a finite, understandable list. */
  html body.home .home-partners__viewport {
    box-sizing: border-box !important;
    width: 100% !important;
    padding: 0 16px 10px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scroll-padding-inline: 16px !important;
    scroll-snap-type: x proximity !important;
    overscroll-behavior-inline: contain;
    scrollbar-width: none;
  }

  html body.home .home-partners__track {
    display: flex !important;
    width: max-content !important;
    animation: none !important;
    transform: none !important;
  }

  html body.home .home-partners__group {
    display: flex !important;
    gap: 12px !important;
    padding: 0 !important;
  }

  html body.home .home-partners__group[aria-hidden="true"] { display: none !important; }
  html body.home .home-partner-card { scroll-snap-align: start !important; }

  /* Every intentional rail exposes the next item, snaps cleanly and supports
   * focus/arrow-key navigation supplied by theme.js. */
  html body .gotek-mobile-rail {
    scroll-padding-inline: 16px !important;
    scroll-snap-type: x proximity !important;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none !important;
    box-shadow: inset -18px 0 16px -18px rgba(10,26,79,.48);
  }

  html body .gotek-mobile-rail::-webkit-scrollbar { display: none !important; }
  html body .gotek-mobile-rail:focus-visible {
    outline: 2px solid #0871ef !important;
    outline-offset: 3px !important;
  }

  html body.home .industry-card {
    flex-basis: min(82vw, 310px) !important;
    width: min(82vw, 310px) !important;
    scroll-snap-align: start !important;
  }

  /* About photography is a swipeable story rather than a squeezed mosaic. */
  html body.gotek-about-page .about-people__mosaic {
    display: flex !important;
    gap: 12px !important;
    width: calc(100vw - 16px) !important;
    max-width: none !important;
    margin-right: -16px !important;
    padding: 0 16px 10px 0 !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scroll-snap-type: x mandatory !important;
  }

  html body.gotek-about-page .about-people__mosaic img,
  html body.gotek-about-page .about-people__mosaic img:first-child {
    flex: 0 0 min(82vw, 330px) !important;
    width: min(82vw, 330px) !important;
    height: auto !important;
    aspect-ratio: 4 / 3 !important;
    object-fit: cover !important;
    scroll-snap-align: start !important;
  }

  /* Insights topics keep full labels, including “Cloud Computing”. */
  html body .gotek-blog .gotek-blog-topics,
  html body .gotek-blog-topics {
    box-sizing: border-box !important;
    display: flex !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-inline: 0 !important;
    padding: 2px 16px 10px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scroll-padding-inline: 16px !important;
  }

  html body .gotek-blog-topics > a {
    box-sizing: border-box !important;
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: max-content !important;
    min-height: 44px !important;
    padding-inline: 16px !important;
    white-space: nowrap !important;
    scroll-snap-align: start !important;
  }

  /* Contact must never inherit a hidden reveal state from a very tall parent. */
  html body .contact-chapter--complete,
  html body .contact-chapter--complete.mobile-reveal,
  html body .contact-chapter--complete.mobile-reveal [data-reveal-item] {
    visibility: visible !important;
    opacity: 1 !important;
    transform: none !important;
  }

  html body .contact-complete-hero { min-height: 0 !important; }
  html body .contact-complete-hero h1 {
    margin: 10px 0 13px !important;
    font-size: clamp(30px, 8.6vw, 40px) !important;
    line-height: 1.12 !important;
  }

  /* Careers form controls are comfortably touchable without changing desktop. */
  html body .careers-main :is(button,a,input,select,textarea),
  html body .careers-main .career-upload,
  html body .careers-main .career-consent {
    min-height: 44px !important;
  }

  html body .careers-main .career-upload {
    box-sizing: border-box !important;
    display: grid !important;
    align-content: center !important;
    min-height: 76px !important;
    padding: 14px !important;
  }

  html body .careers-main .career-consent {
    display: grid !important;
    grid-template-columns: 24px minmax(0,1fr) !important;
    gap: 12px !important;
    align-items: start !important;
    padding-block: 10px !important;
  }

  html body .careers-main .career-consent input[type="checkbox"] {
    width: 22px !important;
    height: 22px !important;
    min-height: 22px !important;
    margin: 1px 0 0 !important;
  }

  /* Standard reading routes: one column, readable copy and bounded embeds. */
  html body :is(.sitemap-page,.gotek-error-page,.wp-page,.gotek-blog,.careers-main) :where(p,li) {
    font-size: max(14px, 1em);
  }

  html body :is(.sitemap-page,.gotek-error-page,.wp-page,.gotek-blog,.careers-main) :where(table,pre,iframe) {
    max-width: 100% !important;
  }

  html body :is(.sitemap-page,.wp-page,.gotek-blog) :where(table,pre) {
    display: block !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
  }
}

/* Final mobile accessibility contract. Kept last so legacy imported landing
 * rules cannot shrink readable copy or interactive targets below the agreed
 * minimums. Editorial kickers and passive metadata remain intentionally small. */
@media (max-width: 820px) {
  html body.home section.hero-global-followup,
  html body.home section.home-partners {
    display: none !important;
  }

  html body :where(
    .gotek-hosting-service-page,
    .gotek-saas-service-page,
    .gotek-website-service-page,
    .gotek-about-page,
    .gotek-blog,
    .gotek-article-page,
    .contact-chapter--complete,
    .careers-main,
    .sitemap-page,
    .wp-page,
    .gotek-error-page
  ) :where(p, li, label, address, .gotek-saas-mobile-stage__panel) {
    font-size: max(14px, 1em) !important;
  }

  html body.gotek-website-service-page :where(p, li, label, address, .gotek-saas-mobile-stage__panel),
  html body.gotek-hosting-service-page :where(p, li, label, address, .gotek-saas-mobile-stage__panel),
  html body.gotek-saas-service-page :where(p, li, label, address, .gotek-saas-mobile-stage__panel),
  html body.gotek-about-page :where(p, li, label, address),
  html body.home main :where(p, li) {
    font-size: max(14px, 1em) !important;
  }

  html body :where(
    header.site-header a,
    header.site-header button,
    .site-header a,
    .site-header button,
    .language-switcher a,
    .language-switcher button,
    footer.site-footer a,
    footer.site-footer button,
    .gotek-share-list a,
    .gotek-share-list button,
    .pagination a,
    .pagination button,
    .nav-links a,
    summary,
    form button,
    form input:not([type="checkbox"]):not([type="radio"]),
    form select
  ) {
    min-height: 44px !important;
  }
}
