/* Mobile has one native scroll surface. Sections grow with their content instead
   of trapping a desktop slide inside a second fixed-height scrolling region. */
@media (max-width:900px) {
  :root { --nav-h:64px; --foot-h:0px; --gutter:20px; }
  html,body { height:100%; overflow:hidden; }
  body { background:#fff; }
  body>nav { height:var(--nav-h)!important; padding-top:env(safe-area-inset-top,0px); }
  .cc-deck-viewport {
    inset:var(--nav-h) 0 0!important;
    height:auto!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    scroll-snap-type:none!important;
    scroll-padding:0!important;
    overscroll-behavior-y:contain;
    -webkit-overflow-scrolling:touch;
    touch-action:pan-y pinch-zoom;
  }
  .cc-deck-viewport>.cc-deck-page {
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    overflow:visible!important;
    scroll-snap-align:none!important;
    scroll-snap-stop:normal!important;
    overscroll-behavior:auto;
  }
  .cc-deck-page>.cc-deck-canvas,
  .cc-deck-canvas>.cc-deck-content {
    display:block!important;
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    overflow:visible!important;
    transform:none!important;
    zoom:1!important;
  }
  .cc-deck-content>section,.cc-deck-content>header {
    display:block!important;
    height:auto!important;
    min-height:calc(100svh - var(--nav-h))!important;
    max-height:none!important;
    padding:40px 0 100px!important;
    overflow:visible!important;
    scroll-margin-top:0;
  }
  .wrap,.new-deck-inner,.cc-package-wrap { max-width:100%; min-width:0; }
  .head,.cc-package-head { margin-bottom:24px; }
  .head h2,.new-deck-inner>h2 { font-size:clamp(26px,5vw,34px)!important; line-height:1.35!important; }
  .head p,.new-deck-sub { font-size:14px!important; line-height:1.8!important; }
  .head p,.new-deck-sub,.comparison-copy { overflow-wrap:anywhere; }
  .btn { min-height:44px; }
  .cc-deck-controls {
    right:10px!important; bottom:calc(10px + env(safe-area-inset-bottom,0px))!important;
    width:38px!important; padding:4px!important; gap:2px!important;
    box-shadow:none!important;
  }
  .cc-deck-controls button.prev,.cc-deck-controls button.next { width:28px!important; min-width:28px!important; height:28px!important; min-height:28px!important; }
  .cc-deck-controls .cc-deck-count { height:22px!important; width:28px!important; font-size:11px!important; }

  /* The homepage remains animated, with a bounded message area and natural cards. */
  .cc-deck-content>header#top { display:flex!important; flex-direction:column; padding:20px 0 96px!important; }
  #top>.wrap { width:100%!important; margin:0 auto!important; padding:0 var(--gutter)!important; }
  #top .hero-message-stage { height:310px!important; min-height:310px!important; margin:0 auto 12px!important; }
  #top .hero-message { padding:12px 4px!important; }
  #top .hero-message .hero-zh h1,#top .hero-message.is-current .hero-zh h1 { font-size:clamp(28px,5vw,40px)!important; line-height:1.35!important; }
  #top .hero-message.is-current .hero-en { max-width:100%; max-height:5em!important; font-size:11px!important; line-height:1.6!important; }
  #top .hero-message[data-message="3"] .hero-final-line { white-space:normal!important; }
  #top .acts { margin:0 auto 24px!important; }
  #top .hero-caps { display:grid!important; grid-template-columns:1fr 1fr!important; gap:14px!important; height:auto!important; margin:0 auto!important; }
  #top .hcap { width:100%!important; height:190px!important; min-height:190px!important; padding:20px!important; border-radius:16px!important; align-items:flex-start!important; }
  #top .hcap b { font-size:22px!important; line-height:1.35!important; text-align:left!important; }
  #top .hcap span,#top .hcap p { font-size:13px!important; line-height:1.7!important; }
  #top .hero-caps .hcap-content { padding:20px!important; }
  #top .logos { flex:none; width:100%; margin:26px 0 0!important; }

  /* A phone cannot hover: tapping an original card reveals its complete details. */
  #content-capabilities { padding:36px 0 100px!important; }
  #content-capabilities .content-mosaic { min-height:0!important; }
  #content-capabilities .content-mosaic article.content-mosaic-card:nth-child(n) { border-radius:18px!important; }
  #content-capabilities .content-mosaic article.content-mosaic-card .service-card-front h3 { font-size:23px!important; }
  #content-capabilities .content-mosaic article.content-mosaic-card .service-card-summary { font-size:14px!important; }
  #content-capabilities .content-mosaic article.content-mosaic-card .service-detail-lead,
  #content-capabilities .content-mosaic article.content-mosaic-card:nth-child(1) .service-detail-lead { font-size:25px!important; line-height:1.35!important; }
  #content-capabilities .content-mosaic article.content-mosaic-card .service-detail-description { font-size:14px!important; line-height:1.75!important; }

  #showroom-transition .transition-grid { grid-template-columns:minmax(0,1fr)!important; gap:20px!important; margin-top:24px!important; }
  #showroom-transition .transition-panel { min-height:0!important; padding:24px!important; }
  #showroom-transition .transition-panel h3 { font-size:28px!important; }
  #showroom-transition .comparison-copy { min-height:0!important; font-size:15px!important; line-height:1.9!important; margin-bottom:0!important; }
  #showroom-transition .transition-question { margin:18px 0!important; font-size:15px!important; }
  #showroom-transition .transition-arrow { height:24px; line-height:24px; transform:rotate(90deg); }
  #pain.poster-overview .poster-wrap { width:auto!important; padding:40px 20px 100px!important; }
  #pain.poster-overview h2 { font-size:clamp(34px,7vw,48px)!important; line-height:1.3!important; }
  .poster-problems { grid-template-columns:1fr!important; gap:26px!important; margin-top:34px!important; }
  .poster-problems strong { font-size:26px!important; line-height:1.5!important; margin-top:8px!important; }
  .poster-eyebrow { font-size:13px!important; margin-bottom:20px!important; }

  /* Keep every stage of the solution visible, including all four benefits. */
  #root-solution .new-deck-sub { margin:14px auto 24px!important; }
  #root-solution .new-deck-issues { grid-template-columns:1fr!important; gap:10px!important; }
  #root-solution .new-deck-issues>div { grid-template-columns:34px minmax(0,1fr)!important; padding:16px!important; column-gap:14px!important; min-height:82px!important; }
  #root-solution .issue-icon { width:30px!important; height:30px!important; grid-row:1/3; }
  #root-solution .issue-icon img { width:30px!important; height:30px!important; }
  #root-solution .new-deck-issues b { font-size:19px!important; line-height:1.4!important; }
  #root-solution .new-deck-issues small { font-size:14px!important; line-height:1.6!important; }
  #root-solution .new-deck-arrows { height:25px!important; font-size:20px!important; }
  #root-solution .new-deck-bluebar { padding:17px 14px!important; }
  #root-solution .new-deck-bluebar strong { font-size:20px!important; line-height:1.5!important; white-space:normal!important; }
  #root-solution .new-deck-values { grid-template-columns:repeat(2,minmax(0,1fr))!important; gap:10px!important; }
  #root-solution .new-deck-values>div { display:flex; flex-direction:column; align-items:center; justify-content:center; min-height:145px!important; padding:18px 10px!important; gap:8px!important; }
  #root-solution .value-icon,#root-solution .value-icon img { width:30px!important; height:30px!important; }
  #root-solution .new-deck-values b { font-size:19px!important; line-height:1.4!important; }
  #root-solution .new-deck-values small { font-size:13px!important; line-height:1.6!important; }
  #root-solution .new-deck-arrows.four { grid-template-columns:repeat(2,minmax(0,1fr))!important; }
  #root-solution .new-deck-arrows.four span:nth-child(n+3) { display:none; }

  .svc-showcase { grid-template-columns:minmax(0,1fr)!important; gap:22px!important; }
  .svc-item,.svc-stage,.svc-extras>div { min-width:0!important; }
  .svc-name { white-space:normal!important; font-size:16px!important; line-height:1.5!important; }
  .svc-row { padding:14px!important; }
  .svc-desc { font-size:14px!important; line-height:1.8!important; }
  .svc-price-member { flex-wrap:wrap; gap:8px; }
  .svc-price-member strong { font-size:26px!important; }
  .svc-stage { height:auto!important; min-height:240px!important; max-height:none!important; }
  .svc-extras { grid-template-columns:1fr!important; }
  .svc-extras>div { flex-wrap:wrap; }
  #cases .case-service-gallery { grid-template-columns:repeat(2,minmax(0,1fr))!important; gap:24px 16px!important; }

  #package-comparison .pks { grid-template-columns:minmax(0,1fr)!important; gap:28px!important; }
  #package-comparison .cc-package-head { padding:24px 18px!important; }
  #package-comparison .cc-package-head h2 { font-size:32px!important; }
  #package-comparison .cc-package-head p { font-size:15px!important; line-height:1.8!important; }
  #package-comparison .pk { padding:25px 22px!important; min-width:0; }
  #package-comparison .pk-top { flex-wrap:wrap; gap:10px!important; }
  #package-comparison .pk-top h4 { font-size:25px!important; }
  #package-comparison .pk li { font-size:15px!important; line-height:1.8!important; }
  #package-comparison .pk li small { font-size:12px!important; line-height:1.8!important; }
  #package-comparison .pk-price-final { margin:20px 0 18px!important; padding-top:18px!important; }
  #package-comparison .pk-price-final .s b { font-size:32px!important; }
  #package-comparison .pk .btn { min-height:46px!important; font-size:15px!important; }
  #cc-addon-slide .addon { grid-template-columns:minmax(0,1fr)!important; padding:24px!important; gap:18px!important; }
  #cc-addon-slide .addon .pk-price { border-left:0!important; padding:16px 0 0!important; border-top:1px solid #e7e9ec; }
  #cc-addon-slide .addon .pk-price .s { display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
  #cc-addon-slide .addon .pk-price .s b { font-size:32px!important; }
  #cc-addon-slide .addon .btn { width:100%; }
  .notes { padding:24px 20px!important; }
  .notes ol { font-size:14px!important; line-height:1.9!important; }
  .notes li { overflow-wrap:anywhere; }
  #faq details { padding-inline:16px!important; }
  #faq summary { font-size:15px!important; line-height:1.6!important; padding-block:16px!important; }
  #faq details p { font-size:14px!important; line-height:1.8!important; }
  #cta .cg,#cta .row { grid-template-columns:minmax(0,1fr)!important; }
  #cta form,#cta .side { padding:24px!important; }
  #cta label { font-size:14px!important; }
  #cta input,#cta select,#cta textarea { font-size:16px!important; min-width:0; width:100%; }
  #cta input,#cta select { min-height:46px; }
  #cta textarea { min-height:110px; }
  #cta .fcols { grid-template-columns:repeat(2,minmax(0,1fr))!important; gap:24px 18px!important; }
  #cta .fcols>div:first-child,#cta .fcols>div:last-child { grid-column:span 2; }

  #cc-ai-page { inset:var(--nav-h) 0 0!important; height:auto!important; padding-bottom:env(safe-area-inset-bottom,0px); overflow-y:auto!important; -webkit-overflow-scrolling:touch; scrollbar-gutter:auto; }
  #cc-ai-page .ai-rich { padding:28px 20px 48px!important; }
  #cc-ai-page .ar-heading h2 { font-size:32px!important; }
  #cc-ai-page .ar-overview,#cc-ai-page .ar-gallery,#cc-ai-page .ar-gallery-two,#cc-ai-page .ar-points { grid-template-columns:minmax(0,1fr)!important; }
  #cc-ai-page .ar-service { padding-block:36px!important; }
  #cc-ai-page .ar-copy h3 { font-size:28px!important; }
  #cc-ai-page .ar-stats { grid-template-columns:repeat(2,minmax(0,1fr))!important; }
  #cc-ai-page .ar-description { font-size:15px!important; line-height:1.85!important; }
  #cc-ai-page .ar-shot { min-width:0; }
  #cc-ai-page img,#cc-ai-page iframe { max-width:100%; }
}
@media (max-width:540px) {
  :root { --gutter:16px; }
  body>nav .nav { padding-inline:12px!important; gap:8px!important; }
  body>nav .brand-logo { width:clamp(128px,38vw,160px)!important; }
  #top .hero-message-stage { height:290px!important; min-height:290px!important; }
  #top .hero-message .hero-zh h1,#top .hero-message.is-current .hero-zh h1 { font-size:clamp(25px,6.4vw,33px)!important; }
  #top .hero-caps { grid-template-columns:minmax(0,1fr)!important; gap:12px!important; }
  #top .hcap { height:175px!important; min-height:175px!important; }
  #top .hcap h3 { font-size:22px!important; }
  #top .hcap .home-card-detail { font-size:13px!important; }
  #root-solution .new-deck-bluebar strong { font-size:18px!important; }
  #cases .case-service-gallery { grid-template-columns:minmax(0,1fr)!important; }
  #cc-ai-page .ar-nav { gap:12px 18px!important; }
  #cc-ai-page .ar-nav a { font-size:13px!important; }
}
@media (max-width:900px) and (orientation:landscape) and (max-height:500px) {
  #top .hero-message-stage { height:260px!important; min-height:260px!important; }
  #top .hero-message .hero-zh h1,#top .hero-message.is-current .hero-zh h1 { font-size:30px!important; }
}
