/* GLV homepage 6.4: contain decorative rotation, keep readable mobile cards. */
.page-home main {
  min-width: 0;
  max-width: 100%;
  overflow-x: clip;
  overflow-y: visible;
}
.page-home .glv-scene,
.page-home .glv-pin,
.page-home .glv-service-slot { min-width: 0; max-width: 100%; }

@media (max-width: 800px) {
  /* Tall rotated sections can sweep hundreds of pixels sideways. On phones,
     leave sections in normal flow; individual service cards retain their reveal. */
  .page-home.glv-motion-ready .glv-scene:not(:last-child) { margin-bottom: 0; }
  .page-home.glv-motion-ready .glv-scene:not(:last-child)::after { display: none; }
  .page-home.glv-motion-ready .glv-pin { position: relative; top: auto; }
  .page-home.glv-motion-ready .glv-surface { transform: none; }
  .page-home .glv-scene[data-glv-active="true"] .glv-surface { will-change: auto; }
  .page-home .glv-surface::after { opacity: 0; }
  .page-home .glv-section-heading > * { min-width: 0; }
  .page-home .market-card { grid-template-columns: 48px minmax(0,1fr) 20px; gap: 12px; }
  .page-home .market-card > div { min-width: 0; }
  .page-home .glv-mobile-panel { overscroll-behavior-x: none; }
}

@media (max-width: 540px) {
  .page-home .glv-services-section,
  .page-home .glv-catalog-section { width: calc(100% - 36px); }
  .page-home .glv-service-cards { grid-template-columns: minmax(0,1fr); gap: 16px; }
  .page-home .glv-service-slot > .glv-service-tile {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    grid-template-columns: 90px minmax(0,1fr);
    column-gap: 12px;
    padding: 18px 16px;
  }
  .page-home .glv-service-tile .glv-art-stage {
    position: relative;
    width: 90px;
    min-width: 0;
    max-width: 100%;
    height: 136px;
    margin: 4px 0 0;
  }
  /* Fit the entire 420px illustration inside its 90px frame, rather than
     clipping a 122px scaled illustration. The AI canvas uses the same frame. */
  .page-home .glv-service-cards .glv-service-art {
    position: absolute;
    left: 50%; top: 50%;
    transform-origin: center;
    transform: translate(-50%,-50%) scale(.205);
  }
  .page-home .glv-service-tile h3 {
    min-width: 0;
    min-height: 0;
    font-size: clamp(23px,5.7vw,28px);
    line-height: 1.12;
    text-wrap: initial;
  }
  .page-home .glv-service-tile h3 a { padding-right: 31px; overflow-wrap: anywhere; }
  .page-home .glv-service-tile p { min-width: 0; font-size: 14px; line-height: 1.55; }
  .page-home .glv-footer-v5 .glv-footer-socials { display: flex; flex-wrap: wrap; gap: 4px 18px; }
  .page-home .glv-footer-v5 .glv-footer-socials h3 { width: 100%; }
  .page-home .glv-footer-v5 .glv-footer-socials a { min-height: 44px; }
}

@media (max-width: 350px) {
  .page-home .glv-service-slot > .glv-service-tile { grid-template-columns: 70px minmax(0,1fr); }
  .page-home .glv-service-tile .glv-art-stage { width: 70px; }
  .page-home .glv-service-cards .glv-service-art { transform: translate(-50%,-50%) scale(.16); }
  .page-home .hero .hero-actions { flex-direction: column; }
  .page-home .hero .hero-actions .button { width: 100%; flex: auto; font-size: 13px; }
}

@supports not (overflow: clip) {
  @media (max-width: 800px) { .page-home main { overflow: hidden; } }
}
@media (prefers-reduced-motion: reduce) {
  .page-home .glv-service-slot > .glv-service-tile { translate: none; rotate: none; transform: none; }
}

/* Mobile hero: no spiral canvas, no poster and no reserved animation space. */
@media (max-width:900px), (hover:none) and (pointer:coarse) {
 .page-home .hero [data-glv-particles="galaxy"],
 .page-home .hero .glv-universe-label,
 .page-home .hero .glv-universe-caption,
 .page-home .hero .glv-universe-mark { display:none !important; }
 .page-home .hero .glv-hero-universe {
   height:auto; min-height:0; display:block;
   background:linear-gradient(135deg,#102449,#132d60 65%,#1d4080);
   border-radius:20px;
 }
 .page-home .hero .glv-hero-universe::before { display:none; }
 .page-home .hero .hero-copy {
   width:100%; max-width:760px; margin:0 auto;
   padding:38px 24px 34px;
 }
 .page-home .hero .hero-lede { max-width:100%; }
 .page-home .hero .trust-line { margin-bottom:0; }
}
@media(max-width:350px) {
 .page-home .hero .hero-copy { padding:30px 20px; }
}
/* Corrections grounded in the 15 September mobile recording. */
@media(max-width:900px), (hover:none) and (pointer:coarse) {
 .page-home .hero .trust-line {
   display:flex; flex-direction:column; align-items:flex-start;
   gap:9px; height:auto; min-height:0; margin-top:22px;
   font-size:11px; line-height:1.5; letter-spacing:.025em;
 }
 .page-home .hero .trust-line > span {
   display:inline-flex; flex-direction:row; flex-wrap:nowrap;
   align-items:center; justify-content:flex-start; gap:8px;
   width:auto; max-width:100%; min-width:0; height:auto;
 }
 .page-home .hero .trust-line > span:last-child { display:none; }
 .page-home .hero .trust-line > i { display:none; }
 .page-home .hero .trust-line .ui-icon {
   display:inline-block; width:16px; min-width:16px; max-width:16px;
   height:16px; min-height:16px; max-height:16px; flex:0 0 16px;
 }
 .page-home .hero .hero-copy { padding-bottom:30px; }
 .page-home .glv-service-ribbon {
   height:54px; min-height:54px; max-height:54px; overflow:hidden;
 }
 .page-home .glv-ribbon-track { display:flex; width:max-content; height:54px; }
 .page-home .glv-ribbon-group {
   display:flex; flex-wrap:nowrap; flex-shrink:0; justify-content:flex-start;
   width:max-content; height:54px; padding:0; gap:0;
 }
 .page-home .glv-ribbon-group > span {
   flex:none; height:54px; white-space:nowrap; padding:0 17px;
   font-size:12px; line-height:1.2;
 }
 .page-home .glv-mobile-panel { overflow-x:hidden; background:#fcfcfa; }
 .page-home .glv-header:has(details[open]) { background:#f7f5ef; }
}
@media(max-width:620px) {
 body.page-home { padding-bottom:0; }
 .page-home .mobile-project-bar { display:none !important; }
 .page-home .faq-section { grid-template-columns:minmax(0,1fr); gap:24px; }
 .page-home .faq-section .section-heading {
   position:static; top:auto; margin:0; padding:0; min-height:0;
 }
 .page-home .faq-section .section-heading h2,
 .page-home .process-section .section-heading h2,
 .page-home .global-delivery-copy h2 {
   font-size:clamp(32px,8.5vw,42px); line-height:1.08;
 }
 .page-home .process-section .section-heading { gap:18px; margin-bottom:26px; }
 .page-home .process-section .heading-note { margin:0; }
}
@media(max-width:540px) {
 .page-home .glv-service-slot > .glv-service-tile { row-gap:12px; }
 .page-home .glv-service-tile .glv-art-stage {
   grid-column:1; grid-row:1; height:88px; margin:8px 0 0; align-self:center;
 }
 .page-home .glv-service-tile h3 {
   grid-column:2; grid-row:1; align-self:center; margin:18px 0 0;
   font-size:clamp(24px,6vw,28px); line-height:1.12;
 }
 .page-home .glv-service-tile p { grid-column:1 / -1; grid-row:2; margin:0; font-size:15px; line-height:1.55; }
}
@media(prefers-reduced-motion:reduce) and (max-width:900px),
 (prefers-reduced-motion:reduce) and (hover:none) and (pointer:coarse) {
 .page-home .glv-service-ribbon { overflow-x:auto; overflow-y:hidden; scrollbar-width:none; }
 .page-home .glv-ribbon-track { animation:none; transform:none; }
 .page-home .glv-ribbon-group[aria-hidden="true"] { display:none; }
 .page-home .glv-service-ribbon::-webkit-scrollbar { display:none; }
}

/* Alternate section edge entrances without sticky overlap or extra page space. */
.page-home.glv-mobile-section-motion .glv-scene:not(:last-child) { margin-bottom:0; }
.page-home.glv-mobile-section-motion .glv-scene:not(:last-child)::after { display:none; }
.page-home.glv-mobile-section-motion .glv-pin { position:relative; top:auto; }
.page-home.glv-mobile-section-motion .glv-scene:not([data-section="hero"]) .glv-surface {
 transform-origin:0 0;
 transform:translate3d(var(--glv-mobile-x,0px),var(--glv-mobile-rise,0px),0) rotate(var(--glv-mobile-angle,0deg)) scale(var(--glv-mobile-scale,1)) !important;
 transition:none; will-change:auto;
}
.page-home.glv-mobile-section-motion .glv-scene[data-edge="right"] .glv-surface { transform-origin:100% 0; }
.page-home.glv-mobile-section-motion .glv-surface::after { opacity:0; }
.page-home.glv-mobile-section-motion .glv-scene:has(:focus-visible) .glv-surface { transform:none !important; }

/* v6.9: the mobile controller owns complete tile entrances independently. */
.page-home.glv-mobile-section-motion .glv-service-slot > .glv-service-tile {
 translate:none !important; rotate:none !important;
 transform-origin:0 0;
 transform:translate3d(var(--glv-tile-x,0px),var(--glv-tile-rise,0px),0) rotate(var(--glv-tile-angle,0deg)) scale(var(--glv-tile-scale,1)) !important;
 transition:none; will-change:auto;
}
.page-home.glv-mobile-section-motion .glv-service-slot:nth-child(even) > .glv-service-tile { transform-origin:100% 0; }
.page-home.glv-mobile-section-motion .glv-service-slot:has(:focus-visible) > .glv-service-tile { transform:none !important; }

/* v6.9.1: touch browsers can retain :hover after a tap. Restrict hover
   pausing to devices with a real hover pointer; preserve reduced motion. */
@media (hover:none), (pointer:coarse) {
 .page-home:not(.glv-paused) .glv-service-ribbon .glv-ribbon-track,
 .page-home:not(.glv-paused) .glv-service-ribbon:hover .glv-ribbon-track {
   animation-play-state:running;
 }
}

/* v6.10 phone recovery: normal-flow content is visible before JavaScript. */
@media(max-width:900px), (hover:none) and (pointer:coarse) {
 body.page-home main,
 .page-home .glv-scene,
 .page-home .glv-pin,
 .page-home .glv-surface {
   opacity:1 !important; visibility:visible !important;
   content-visibility:visible !important;
   transform:none !important; translate:none !important; rotate:none !important;
   perspective:none !important; will-change:auto !important;
 }
 body.page-home.glv-mobile-section-motion .glv-scene:not([data-section="hero"]) .glv-surface {transform:none !important;}
 .page-home .glv-scene {isolation:auto; margin-bottom:0 !important;}
 .page-home .glv-scene::after,.page-home .glv-surface::after {display:none !important;}
 .page-home .glv-pin {position:relative !important; top:auto !important;}
 .page-home .glv-surface {overflow:visible; box-shadow:none;}
 .page-home main .reveal,.page-home main .scroll-reveal {
   opacity:1 !important; visibility:visible !important; transform:none !important;
   animation:none !important; transition:none !important;
 }
 body.page-home .glv-service-slot > .glv-service-tile {
   opacity:1 !important; visibility:visible !important;
   translate:none !important; rotate:none !important; transform:none !important;
   transition:none !important; will-change:auto !important;
 }
 .page-home .glv-service-slot {will-change:auto;}
 .page-home .glv-service-tile .glv-art-stage {transform:none !important;transition:none !important;}
 .page-home .glv-animation-canvas,.page-home .glv-animation-controls,.page-home .glv-animation-status {display:none !important;}
 .page-home .glv-arrow-art .glv-particle-poster {display:block !important;opacity:1 !important;}
 .page-home .site-header.glv-header,
 .page-home .site-header.glv-header.is-scrolled,
 .page-home .glv-nav-shell {
   backdrop-filter:none !important; -webkit-backdrop-filter:none !important;
   filter:none !important;
 }
 .page-home .site-header.glv-header {background:rgba(247,245,239,.97) !important;}
 .page-home .glv-header-current i,.page-home .glv-orbit-ring,
 .page-home .glv-footer-direction>i::after {animation:none !important;}
 .page-home .glv-service-ribbon .glv-ribbon-track {will-change:auto;}
 .page-home.glv-mobile-lite:not(.glv-paused) .glv-service-ribbon .glv-ribbon-track {animation-play-state:paused;}
 .page-home.glv-mobile-lite:not(.glv-paused) .glv-service-ribbon[data-glv-ribbon-visible="true"] .glv-ribbon-track {animation-play-state:running;}
}

/* v6.11: static mobile content; standard controls and one slow ribbon. */
@media(max-width:900px), (hover:none) and (pointer:coarse) {
 body.page-home .glv-service-slot {
   transform:none !important; translate:none !important; rotate:none !important;
   animation:none !important; transition:none !important; will-change:auto !important;
 }
 body.page-home .glv-service-slot > .glv-service-tile,
 .page-home .glv-service-art,
 .page-home .glv-service-art * {
   animation:none !important;
 }
 .page-home .hero .hero-actions .button,
 .page-home .glv-header-action,
 .page-home .glv-footer-start {
   transition:background-color .18s ease,color .18s ease,border-color .18s ease,box-shadow .18s ease;
 }
 .page-home .hero .hero-actions .button:active,
 .page-home .glv-header-action:active,
 .page-home .glv-footer-start:active {filter:brightness(.94);}
 .page-home .glv-service-ribbon {
   height:54px !important;min-height:54px !important;max-height:54px !important;
   overflow:hidden !important;
 }
 /* Explicit owner request: retain ribbon motion even when other animations
    are disabled on the phone. This override applies only to this ribbon. */
 .page-home .glv-service-ribbon .glv-ribbon-track {
   display:flex !important;width:max-content !important;height:54px !important;
   animation:glv-ribbon-travel 65s linear infinite !important;will-change:auto;
 }
 .page-home .glv-service-ribbon .glv-ribbon-group,
 .page-home .glv-service-ribbon .glv-ribbon-group[aria-hidden="true"] {
   display:flex !important;flex-wrap:nowrap !important;flex-shrink:0 !important;
   width:max-content !important;height:54px !important;padding:0 !important;gap:0 !important;
 }
 .page-home .glv-service-ribbon .glv-ribbon-group>span {
   flex:none !important;white-space:nowrap !important;height:54px !important;padding:0 17px !important;
 }
 .page-home.glv-mobile-simple .glv-service-ribbon .glv-ribbon-track {animation-play-state:paused !important;}
 .page-home.glv-mobile-simple .glv-service-ribbon[data-glv-ribbon-visible="true"] .glv-ribbon-track {animation-play-state:running !important;}
}

@media(max-width:900px), (hover:none) and (pointer:coarse) {
 .page-home [data-glv-particles="galaxy"],.page-home .glv-arrow-art {display:none !important;}
 .page-home .glv-art-stage:has(.glv-arrow-art)::before {
   content:"AI";display:grid;place-items:center;width:58px;height:58px;
   border-radius:16px;background:#2457ff;color:#fff;
   font:700 24px/1 system-ui,sans-serif;letter-spacing:-1px;
   box-shadow:none;transform:none;animation:none !important;
 }
}
