/* skip link */
.ll-skip{
  position:absolute;left:0.75rem;top:0.75rem;z-index:200;
  padding:0.55rem 0.9rem;border-radius:6px;
  background:var(--ll-blue);color:#fff;font-size:0.9rem;font-weight:520;
  transform:translateY(-160%);
  transition:transform 0.2s var(--ll-ease);
}
.ll-skip:focus,.ll-skip:focus-visible{
  transform:translateY(0);
  outline:2px solid #fff;outline-offset:2px;
}

/* site-shell-v2 — shared nav + footer for new-system inner pages */
:root {
  --ll-white: #fdfdfd;
  --ll-bg: #f2f2f4;
  --ll-ink: #0f1012;
  --ll-muted: #5e5e5e;
  --ll-subtle: rgba(15,16,18,0.42);
  --ll-blue: #0071e3;
  --ll-line: rgba(15,16,18,0.1);
  --ll-gutter: clamp(1.5rem, 4.5vw, 4.5rem);
  --ll-nav-w: 760px;
  --ll-max: 1360px;
  --ll-ease: cubic-bezier(0.32, 0.72, 0, 1);
  --ll-d: 0ms;
}

body.ll-shell{
  font-family:"PingFang SC","Microsoft YaHei","Noto Sans SC",sans-serif;
  color:var(--ll-ink);
  background:var(--ll-bg);
  font-size:16px;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  margin:0;
}
body.ll-shell *,
body.ll-shell *::before,
body.ll-shell *::after{box-sizing:border-box}
body.ll-shell img{display:block;max-width:100%;height:auto}
body.ll-shell a{color:inherit;text-decoration:none}
body.ll-shell button{font-family:inherit}
body.ll-shell .ll-main{min-height:55vh}

/* footer reveals on shell pages */
body.ll-shell .ll-reveal{
  opacity:0;
  transform:translateY(20px);
  transition:opacity 0.8s var(--ll-ease), transform 0.8s var(--ll-ease);
  transition-delay:var(--ll-d, 0ms);
}
body.ll-shell .ll-reveal.is-in{
  opacity:1;
  transform:none;
}
@media (prefers-reduced-motion: reduce){
  body.ll-shell .ll-reveal{
    opacity:1;transform:none;transition:none;
  }
}

/* Inner pages: footer is content-driven, not forced 100svh snap chapter */
body.ll-shell .ll-footer{
  min-height:auto;
}


/* === NAV === */
/* Header shell: always transparent — no full-width bar */
.ll-header{
  position:fixed;top:0;left:0;right:0;z-index:100;
  padding:0.65rem 0;
  background:transparent;
  /* blur/tint live only on .ll-pill, never on full-width shell */
}
.ll-header__inner{
  position:relative;
  width:min(var(--ll-max),100%);margin:0 auto;padding:0 var(--ll-gutter);
  display:flex;align-items:center;gap:1.35rem;
  min-height:50px;
}
.ll-header__icon{
  position:relative;
  z-index:2;
  flex:0 0 auto;width:48px;height:48px;
  display:flex;align-items:center;justify-content:center;
}
.ll-header__icon img{width:44px;height:44px;object-fit:contain}
.ll-header__mobile-cta{display:none}
.ll-header__menu-btn{
  display:none;
  margin-left:auto;
  flex:0 0 auto;
  width:40px;height:40px;
  align-items:center;justify-content:center;
  border:1px solid rgba(15,16,18,0.1);
  border-radius:999px;
  background:rgba(255,255,255,0.72);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  color:var(--ll-ink);
  cursor:pointer;
  padding:0;
  transition:background 0.35s var(--ll-ease), border-color 0.35s var(--ll-ease), color 0.35s var(--ll-ease);
}
.ll-header__menu-btn svg{width:18px;height:18px;display:block}
.ll-header__menu-btn:hover{background:rgba(255,255,255,0.92)}
.ll-header__menu-btn:focus-visible,
.ll-pill__link:focus-visible,
.ll-nav-panel a:focus-visible,
.ll-mnav a:focus-visible,
.ll-mnav__close:focus-visible{
  outline:2px solid var(--ll-blue);
  outline-offset:2px;
}
.ll-pill{
  flex:0 1 var(--ll-nav-w);
  display:flex;align-items:center;gap:0.15rem;
  min-height:50px;height:50px;
  padding:0 0.55rem 0 1.15rem;
  background:rgba(255,255,255,0.52);
  border:1px solid rgba(15,16,18,0.06);
  border-radius:999px;
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  overflow:visible; /* menus must not clip */
  transition:
    background 0.38s var(--ll-ease),
    border-color 0.38s var(--ll-ease),
    backdrop-filter 0.38s var(--ll-ease),
    -webkit-backdrop-filter 0.38s var(--ll-ease),
    box-shadow 0.38s var(--ll-ease);
  z-index:1;
}
/* Desktop ≥1024: pill centered to viewport; logo independent */
@media (min-width:1024px){
  .ll-pill{
    position:absolute;
    left:50%;
    top:50%;
    transform:translate(-50%,-50%);
    flex:0 1 auto;
    width:max-content;
    max-width:min(var(--ll-nav-w), calc(100vw - 7.5rem));
  }
}
/* Light (default): scrolled strengthens capsule only */
.ll-header.is-scrolled .ll-pill{
  background:rgba(255,255,255,0.88);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
}
.ll-pill__link{
  font-size:0.95rem;color:var(--ll-muted);
  padding:0.4rem 0.78rem;white-space:nowrap;
  transition:color 0.35s var(--ll-ease);background:none;border:0;cursor:pointer;font-family:inherit;
  text-decoration:none;
  display:inline-flex;align-items:center;gap:0.28rem;
  border-radius:999px;
}
.ll-pill__link:hover{color:var(--ll-ink)}
.ll-pill__link--dim{opacity:0.62}.ll-pill__link--dim:hover{opacity:1}
.ll-pill__link[aria-expanded="true"]{color:var(--ll-ink)}
.ll-pill__chev{
  width:0.55em;height:0.55em;
  border-right:1.5px solid currentColor;
  border-bottom:1.5px solid currentColor;
  transform:rotate(45deg) translateY(-1px);
  opacity:0.55;
  transition:transform 0.28s var(--ll-ease);
  flex-shrink:0;
}
.ll-pill__link[aria-expanded="true"] .ll-pill__chev{
  transform:rotate(225deg) translateY(-1px);
  opacity:0.8;
}
.is-disabled,
.ll-pill__link[aria-disabled="true"]{
  opacity:0.4;
  pointer-events:none;
  cursor:default;
}
.ll-pill__soon{
  font-size:0.68em;
  letter-spacing:0.04em;
  opacity:0.75;
  margin-left:0.15rem;
}
.ll-pill__cta{
  display:inline-flex;align-items:center;justify-content:center;
  height:36px;padding:0 1.05rem;
  font-size:0.9rem;font-weight:540;color:#fff;
  background:var(--ll-blue);border-radius:999px;
  white-space:nowrap;margin-left:auto;flex-shrink:0;
  transition:background 0.35s var(--ll-ease), color 0.35s var(--ll-ease);
  text-decoration:none;
}
.ll-pill__cta:hover{background:#0060c0}

/* Desktop dropdown items — panel outside pill geometry */
.ll-nav-item{
  position:relative;
  display:flex;
  align-items:center;
  height:100%;
  flex:0 0 auto;
}
.ll-nav-panel{
  position:absolute;
  top:calc(100% + 14px);
  left:50%;
  transform:translateX(-50%) translateY(6px);
  min-width:13.5rem;
  padding:0.45rem;
  border-radius:16px;
  background:rgba(253,253,253,0.97);
  border:1px solid rgba(15,16,18,0.08);
  box-shadow:
    0 18px 48px rgba(15,16,18,0.14),
    0 2px 8px rgba(15,16,18,0.06);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  z-index:130;
  transition:
    opacity 0.22s var(--ll-ease),
    transform 0.22s var(--ll-ease),
    visibility 0.22s;
}
.ll-nav-item.is-open .ll-nav-panel{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translateX(-50%) translateY(0);
}
.ll-nav-panel a{
  display:block;
  padding:0.7rem 0.9rem;
  border-radius:11px;
  color:var(--ll-ink);
  font-size:0.92rem;
  line-height:1.35;
  white-space:nowrap;
  text-decoration:none;
  transition:background 0.18s var(--ll-ease), color 0.18s var(--ll-ease);
}
.ll-nav-panel a:hover,
.ll-nav-panel a:focus-visible{
  background:rgba(15,16,18,0.055);
  color:var(--ll-ink);
}
.ll-nav-panel__foot{
  margin-top:0.15rem;
  padding-top:0.15rem;
  border-top:1px solid rgba(15,16,18,0.08);
}
.ll-nav-panel__foot a{
  font-weight:540;
  color:var(--ll-blue);
}
.ll-nav-panel__foot a:hover{
  background:rgba(0,113,227,0.08);
  color:#0060c0;
}
.ll-nav-panel__soon{
  display:block;
  padding:0.7rem 0.9rem;
  color:var(--ll-blue);
  font-size:0.92rem;
  font-weight:540;
  line-height:1.35;
  white-space:nowrap;
  pointer-events:none;
  cursor:default;
}

/* Mobile full-screen sheet (not cramped pill) */
.ll-mnav{
  position:fixed;
  inset:0;
  z-index:200;
  display:none;
}
.ll-mnav.is-open{display:block}
.ll-mnav__backdrop{
  position:absolute;inset:0;
  background:rgba(15,16,18,0.42);
  border:0;padding:0;cursor:pointer;
  width:100%;height:100%;
}
.ll-mnav__sheet{
  position:absolute;
  top:0;right:0;bottom:0;
  width:min(22rem,88vw);
  max-width:100%;
  background:#fdfdfd;
  color:var(--ll-ink);
  box-shadow:-12px 0 40px rgba(15,16,18,0.16);
  display:flex;
  flex-direction:column;
  overflow:auto;
  overscroll-behavior:contain;
}
.ll-mnav__head{
  display:flex;align-items:center;justify-content:space-between;
  padding:1rem 1.15rem;
  border-bottom:1px solid rgba(15,16,18,0.08);
  flex:0 0 auto;
}
.ll-mnav__title{
  font-size:0.95rem;font-weight:560;letter-spacing:0.02em;
}
.ll-mnav__close{
  width:36px;height:36px;
  border:0;border-radius:999px;
  background:rgba(15,16,18,0.06);
  color:var(--ll-ink);
  cursor:pointer;
  font-size:1.25rem;line-height:1;
  display:inline-flex;align-items:center;justify-content:center;
}
.ll-mnav__body{
  padding:0.75rem 1rem 1.5rem;
  display:flex;flex-direction:column;gap:0.15rem;
}
.ll-mnav__label{
  margin:0.95rem 0 0.35rem;
  padding:0 0.55rem;
  font-size:0.72rem;
  font-weight:560;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:rgba(15,16,18,0.42);
}
.ll-mnav__label:first-child{margin-top:0.35rem}
.ll-mnav__body a{
  display:block;
  padding:0.85rem 0.7rem;
  border-radius:12px;
  color:var(--ll-ink);
  font-size:1.02rem;
  text-decoration:none;
  line-height:1.35;
}
.ll-mnav__body a:hover,
.ll-mnav__body a:focus-visible{
  background:rgba(15,16,18,0.05);
}
.ll-mnav__soon{
  opacity:0.45;
  pointer-events:none;
  font-size:0.95rem;
  padding:0.7rem 0.7rem;
}
body.ll-nav-lock{overflow:hidden}

/* === NAV THEMES (dark / blue chapters) ===
   Specificity must beat .ll-header.is-scrolled .ll-pill */
/* Dark: principles, workflow, footer */
.ll-header.ll-header--dark .ll-pill,
.ll-header.ll-header--dark.is-scrolled .ll-pill{
  background:rgba(15,16,18,0.62);
  border-color:rgba(255,255,255,0.12);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
}
.ll-header.ll-header--dark.is-scrolled .ll-pill{
  background:rgba(15,16,18,0.78);
  border-color:rgba(255,255,255,0.14);
}
.ll-header.ll-header--dark .ll-pill__link{
  color:rgba(242,242,244,0.74);
}
.ll-header.ll-header--dark .ll-pill__link:hover,
.ll-header.ll-header--dark .ll-pill__link[aria-expanded="true"]{
  color:#fdfdfd;
}
.ll-header.ll-header--dark .ll-pill__link--dim{opacity:0.55}
.ll-header.ll-header--dark .ll-pill__link--dim:hover{opacity:0.95}
.ll-header.ll-header--dark .is-disabled,
.ll-header.ll-header--dark .ll-pill__link[aria-disabled="true"]{opacity:0.32}
.ll-header.ll-header--dark .ll-pill__cta{
  background:var(--ll-blue);
  color:#fff;
}
.ll-header.ll-header--dark .ll-header__menu-btn{
  background:rgba(15,16,18,0.55);
  border-color:rgba(255,255,255,0.14);
  color:#f2f2f4;
}
.ll-header.ll-header--dark .ll-nav-panel{
  background:rgba(22,24,28,0.97);
  border-color:rgba(255,255,255,0.12);
  box-shadow:0 18px 48px rgba(0,0,0,0.4);
}
.ll-header.ll-header--dark .ll-nav-panel a{
  color:rgba(253,253,253,0.9);
}
.ll-header.ll-header--dark .ll-nav-panel a:hover,
.ll-header.ll-header--dark .ll-nav-panel a:focus-visible{
  background:rgba(255,255,255,0.08);
  color:#fff;
}
.ll-header.ll-header--dark .ll-nav-panel__foot{
  border-top-color:rgba(255,255,255,0.1);
}
.ll-header.ll-header--dark .ll-nav-panel__foot a{
  color:#6db3ff;
}
.ll-header.ll-header--dark .ll-nav-panel__foot a:hover{
  background:rgba(0,113,227,0.18);
  color:#9cccff;
}

/* Blue CTA chapter: near-black capsule so nav never blends into signal blue */
.ll-header.ll-header--blue .ll-pill,
.ll-header.ll-header--blue.is-scrolled .ll-pill{
  background:rgba(15,16,18,0.52);
  border-color:rgba(255,255,255,0.14);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
}
.ll-header.ll-header--blue.is-scrolled .ll-pill{
  background:rgba(15,16,18,0.66);
  border-color:rgba(255,255,255,0.16);
}
.ll-header.ll-header--blue .ll-pill__link{
  color:rgba(253,253,253,0.88);
}
.ll-header.ll-header--blue .ll-pill__link:hover,
.ll-header.ll-header--blue .ll-pill__link[aria-expanded="true"]{
  color:#fff;
}
.ll-header.ll-header--blue .ll-pill__link--dim{opacity:0.58}
.ll-header.ll-header--blue .ll-pill__link--dim:hover{opacity:1}
.ll-header.ll-header--blue .is-disabled,
.ll-header.ll-header--blue .ll-pill__link[aria-disabled="true"]{opacity:0.34}
.ll-header.ll-header--blue .ll-pill__cta{
  background:var(--ll-blue);
  color:#fff;
  box-shadow:0 0 0 1px rgba(255,255,255,0.18);
}
.ll-header.ll-header--blue .ll-header__menu-btn{
  background:rgba(15,16,18,0.48);
  border-color:rgba(255,255,255,0.16);
  color:#fff;
}
.ll-header.ll-header--blue .ll-nav-panel{
  background:rgba(22,24,28,0.97);
  border-color:rgba(255,255,255,0.14);
  box-shadow:0 18px 48px rgba(0,0,0,0.35);
}
.ll-header.ll-header--blue .ll-nav-panel a{
  color:rgba(253,253,253,0.92);
}
.ll-header.ll-header--blue .ll-nav-panel a:hover,
.ll-header.ll-header--blue .ll-nav-panel a:focus-visible{
  background:rgba(255,255,255,0.1);
  color:#fff;
}
.ll-header.ll-header--blue .ll-nav-panel__foot{
  border-top-color:rgba(255,255,255,0.12);
}
.ll-header.ll-header--blue .ll-nav-panel__foot a{color:#8ec4ff}

@media (prefers-reduced-motion: reduce){
  .ll-pill,
  .ll-pill__link,
  .ll-pill__cta,
  .ll-nav-panel,
  .ll-header__menu-btn{
    transition-duration:0.01ms !important;
  }
}


/* === S9 FOOTER — dark brand index (end chapter) === */
.ll-footer{
  min-height:72svh;
  /*
   * R1.1: top pad clears fixed header so brand never sits under nav logo.
   * safeGap = brandTop - headerBottom ≥ 20–32px when footer snaps/scrolls into view.
   */
  padding:
    max(clamp(4.25rem, 8vw, 5.5rem), calc(var(--shell-header-height, 4.5rem) + 1.75rem))
    0
    clamp(1.5rem, 3vw, 2.25rem);
  background:#0f1012;
  color:#f2f2f4;
  display:flex;
  flex-direction:column;
  justify-content:stretch;
}
/* Desktop snap range: footer must fill viewport so CTA→Footer never stalls mid-band */
@media (min-width:1200px) and (pointer:fine){
  .ll-footer{
    min-height:100svh;
  }
}
.ll-footer__inner{
  width:min(var(--ll-max),100%);
  margin:0 auto;
  padding:0 var(--ll-gutter);
  flex:1;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:clamp(1.75rem,4.5vh,3.25rem);
}
.ll-footer__top{
  display:grid;
  grid-template-columns:minmax(10rem,0.95fr) minmax(0,2.4fr);
  gap:clamp(2.5rem,5vw,4.5rem);
  align-items:start;
  padding-top:0.35rem;
}
.ll-footer__brand{
  font-size:clamp(1.65rem,2.4vw,2.15rem);
  font-weight:560;
  letter-spacing:-0.03em;
  line-height:1.1;
  color:#fdfdfd;
}
.ll-footer__index{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(1.75rem,3.5vw,3.25rem);
  min-width:0;
}
.ll-footer__group{
  display:flex;
  flex-direction:column;
  gap:1.35rem;
  min-width:0;
}
.ll-footer__label{
  display:flex;
  flex-direction:column;
  gap:0.35rem;
}
.ll-footer__num{
  font-size:0.78rem;
  font-weight:520;
  letter-spacing:0.08em;
  color:rgba(242,242,244,0.7);
  line-height:1.2;
}
.ll-footer__cat{
  font-size:0.82rem;
  font-weight:520;
  letter-spacing:0.04em;
  color:rgba(242,242,244,0.78);
  line-height:1.3;
}
.ll-footer__links{
  display:flex;
  flex-direction:column;
  gap:0.15rem;
}
.ll-footer__links a{
  display:block;
  font-size:clamp(1.12rem,1.45vw,1.35rem);
  font-weight:520;
  letter-spacing:-0.02em;
  line-height:1.35;
  color:rgba(253,253,253,0.98);
  padding:0.42rem 0;
  transition:color 0.22s var(--ll-ease);
  min-height:2.5rem;
}
.ll-footer__links a:hover{
  color:#fff;
}
/* Footer social R1.1 — always-visible names + circular hit targets; desktop centered */
.ll-footer__social{
  display:flex;
  flex-direction:column;
  align-items:center; /* desktop: use mid whitespace, not left-bottom corner */
  gap:0.85rem;
  margin-top:auto;
  margin-bottom:0.35rem;
  padding:0.5rem 0 0.75rem;
  width:100%;
}
.ll-footer__social-label{
  margin:0;
  font-size:0.78rem;
  font-weight:500;
  letter-spacing:0.12em;
  color:rgba(242,242,244,0.5);
  line-height:1.3;
  text-align:center;
}
.ll-footer__social-list{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:row;
  align-items:flex-start;
  justify-content:center;
  gap:clamp(2.75rem, 4.5vw, 3.5rem); /* ~72–88px centers */
  width:100%;
  max-width:28rem;
}
.ll-footer__social-list li{
  margin:0;
  padding:0;
  flex:0 0 auto;
}
/* whole icon+name is the hit target */
.ll-footer__social-link{
  position:relative;
  display:inline-flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  gap:0.45rem;
  min-width:3.5rem;
  padding:0;
  border-radius:0;
  color:rgba(253,253,253,0.78);
  background:transparent;
  text-decoration:none;
  transition:color 0.18s var(--ll-ease);
}
/* 44–48px circular icon plate — always visible */
.ll-footer__social-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:2.85rem; /* ~45.6px */
  height:2.85rem;
  border-radius:50%;
  background:rgba(255,255,255,0.08);
  border:1px solid rgba(255,255,255,0.16);
  line-height:0;
  flex:0 0 auto;
  transition:
    background 0.18s var(--ll-ease),
    border-color 0.18s var(--ll-ease),
    transform 0.18s var(--ll-ease);
}
.ll-footer__social-icon img{
  width:1.35rem; /* ~21.6px */
  height:1.35rem;
  display:block;
  filter:brightness(0) invert(1);
  opacity:0.92;
}
.ll-footer__social-name{
  display:block;
  font-size:0.78rem;
  font-weight:500;
  letter-spacing:0.02em;
  line-height:1.25;
  color:rgba(253,253,253,0.72);
  text-align:center;
  white-space:nowrap;
  transition:color 0.18s var(--ll-ease);
}
.ll-footer__social-link:hover{
  color:#fff;
}
.ll-footer__social-link:hover .ll-footer__social-icon{
  background:rgba(255,255,255,0.16);
  border-color:rgba(255,255,255,0.28);
  transform:translateY(-1px);
}
.ll-footer__social-link:hover .ll-footer__social-icon img{opacity:1}
.ll-footer__social-link:hover .ll-footer__social-name{color:rgba(253,253,253,0.95)}
.ll-footer__social-link:focus-visible{
  outline:none;
  color:#fff;
}
.ll-footer__social-link:focus-visible .ll-footer__social-icon{
  outline:2px solid var(--ll-blue);
  outline-offset:3px;
  background:rgba(255,255,255,0.14);
  border-color:rgba(255,255,255,0.28);
}
.ll-footer__social-link:focus-visible .ll-footer__social-name{color:#fff}
@media (prefers-reduced-motion:reduce){
  .ll-footer__social-link,
  .ll-footer__social-icon,
  .ll-footer__social-name{
    transition:none;
  }
  .ll-footer__social-link:hover .ll-footer__social-icon{transform:none}
}

.ll-footer__bottom{
  padding-top:1.25rem;
  border-top:1px solid rgba(242,242,244,0.14);
  color:rgba(242,242,244,0.62);
  font-size:0.875rem; /* 14px */
  letter-spacing:0;
  line-height:1.6;
  text-align:left;
}
.ll-footer__bottom p{margin:0}
/* Footer legal / ICP block — keeps dark shell, restores compliance copy */
.ll-footer__legal{
  display:flex;
  flex-direction:column;
  gap:0.65rem;
  max-width:100%;
}
.ll-footer__tagline{
  margin:0;
  font-size:0.9rem; /* ~14.4px — secondary, not a heading */
  font-weight:420;
  font-style:italic;
  letter-spacing:0;
  line-height:1.55;
  color:rgba(253,253,253,0.78);
}
.ll-footer__legal-meta{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  gap:0.35rem 1.25rem;
}
.ll-footer__beian{
  display:inline-block;
  color:rgba(242,242,244,0.62);
  text-decoration:none;
  border-bottom:1px solid transparent;
  transition:color 0.2s var(--ll-ease), border-color 0.2s var(--ll-ease);
  white-space:nowrap; /* 备案号不得逐字换行 */
}
.ll-footer__beian:hover{
  color:rgba(253,253,253,0.92);
  border-bottom-color:rgba(253,253,253,0.35);
}
.ll-footer__beian:focus-visible{
  outline:2px solid var(--ll-blue);
  outline-offset:3px;
  color:#fff;
  border-bottom-color:transparent;
}
.ll-footer__copy{
  margin:0;
  font-size:0.84rem;
  line-height:1.6;
  color:rgba(242,242,244,0.52);
  max-width:42rem;
}


@media(max-width:1023px){
/* tablet/phone: hide desktop capsule — use hamburger sheet instead */
  .ll-pill{display:none !important}
.ll-header__menu-btn{display:inline-flex}
.ll-header__mobile-cta{
    display:inline-flex;align-items:center;justify-content:center;
    height:34px;padding:0 0.95rem;
    font-size:0.86rem;font-weight:540;color:#fff;
    background:var(--ll-blue);border-radius:999px;
    text-decoration:none;flex:0 0 auto;
  }
.ll-header__inner{gap:0.65rem}
}

@media(max-width:900px){
.ll-header__inner{gap:0.85rem}
}

@media(max-width:1199px){
.ll-footer{
    min-height:auto;
    /* clear fixed header + ~24–32px safe gap to brand */
    padding:
      max(clamp(4.5rem, 10vw, 5.75rem), calc(var(--shell-header-height, 4.5rem) + 2rem))
      0
      2.25rem;
  }
.ll-footer__top{
    grid-template-columns:1fr;
    gap:2.75rem;
  }
.ll-footer__index{
    grid-template-columns:1fr 1fr;
    gap:2.25rem 2rem;
  }
.ll-footer__group:last-child{
    grid-column:1 / -1;
    max-width:22rem;
  }
.ll-footer__links a{
    font-size:clamp(1.08rem,2vw,1.22rem);
  }
.ll-footer__inner{
    gap:clamp(2rem,5vh,3.25rem);
  }
  .ll-footer__social{
    align-items:flex-start; /* tablet: grid-left */
  }
  .ll-footer__social-label{text-align:left}
  .ll-footer__social-list{
    justify-content:flex-start;
    max-width:none;
    gap:clamp(1.75rem, 5vw, 2.75rem);
  }
}

@media(max-width:560px){
.ll-header{padding:0.5rem 0}
.ll-header__icon{width:40px;height:40px}
.ll-header__icon img{width:36px;height:36px}
.ll-header__menu-btn{width:36px;height:36px}
.ll-mnav__sheet{width:min(100vw,22rem)}
.ll-footer{
    min-height:auto; /* phone: natural height, not forced 92svh */
    padding:
      max(4.75rem, calc(var(--shell-header-height, 4.5rem) + 1.85rem))
      0
      2rem;
  }
.ll-footer__top{
    gap:2.5rem;
    padding-top:0.15rem;
  }
.ll-footer__brand{
    font-size:clamp(1.7rem,7vw,2rem);
  }
.ll-footer__index{
    grid-template-columns:1fr;
    gap:2.65rem;
  }
.ll-footer__group{
    flex-direction:row;
    align-items:flex-start;
    justify-content:space-between;
    gap:1.25rem 1.5rem;
  }
.ll-footer__group:last-child{
    grid-column:auto;
    max-width:none;
  }
.ll-footer__label{
    flex:0 0 auto;
    min-width:6.5rem;
    max-width:38%;
    padding-top:0.2rem;
  }
.ll-footer__links{
    flex:1 1 auto;
    min-width:0;
    text-align:right;
    align-items:flex-end;
  }
.ll-footer__links a{
    font-size:clamp(1.12rem,4.6vw,1.28rem);
    padding:0.5rem 0;
    min-height:2.75rem;
    width:100%;
    text-align:right;
  }
.ll-footer__bottom{
    font-size:0.82rem;
    padding-top:1.15rem;
  }
  .ll-footer__social{
    align-items:flex-start;
    gap:0.65rem;
    padding:0.35rem 0 0.5rem;
    margin-bottom:0.15rem;
  }
  .ll-footer__social-label{text-align:left}
  .ll-footer__social-list{
    justify-content:flex-start;
    gap:1.15rem; /* fit 3 labeled entries in 390 */
    max-width:100%;
  }
  .ll-footer__social-link{min-width:3.25rem}
  .ll-footer__social-icon{
    width:2.75rem;
    height:2.75rem; /* ≥44px */
  }
  .ll-footer__legal{gap:0.55rem}
  .ll-footer__legal-meta{
    flex-direction:column;
    align-items:flex-start;
    gap:0.35rem;
  }
  .ll-footer__tagline{font-size:0.86rem}
  .ll-footer__copy{
    max-width:none;
    white-space:normal; /* 公司名称可正常换行 */
  }
}
body.ll-shell a:focus-visible,
body.ll-shell button:focus-visible{
  outline:2px solid var(--ll-blue);
  outline-offset:2px;
}

/* Language switch (ZH ↔ EN) — compact pill next to header CTA */
.ll-lang{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:2.25rem;
  height:2rem;
  padding:0 0.55rem;
  margin-left:0.2rem;
  border:1px solid rgba(15,16,18,0.1);
  border-radius:999px;
  background:rgba(255,255,255,0.72);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  font-size:0.78rem;
  font-weight:560;
  letter-spacing:0.04em;
  color:var(--ll-ink);
  transition:background 0.25s var(--ll-ease), border-color 0.25s var(--ll-ease), color 0.25s var(--ll-ease);
}
.ll-lang:hover{background:rgba(255,255,255,0.95)}
.ll-lang:focus-visible{
  outline:2px solid var(--ll-blue);
  outline-offset:2px;
}
.ll-lang-wrap{display:inline-flex;align-items:center;flex:0 0 auto}
.ll-lang-select{max-width:7.75rem;padding-right:0.4rem;cursor:pointer;letter-spacing:0}
.ll-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.ll-mnav__language{display:grid;gap:0.45rem;padding-top:0.4rem;color:var(--ll-muted);font-size:0.82rem}
.ll-mnav__language .ll-mnav__lang{width:100%;font:inherit;color:inherit}
.ll-header--dark .ll-lang,
.ll-header--blue .ll-lang{
  background:rgba(15,16,18,0.28);
  border-color:rgba(255,255,255,0.18);
  color:#fff;
}
.ll-mnav__lang{
  display:inline-flex;
  margin-top:0.35rem;
  padding:0.35rem 0;
  font-weight:560;
  color:var(--ll-blue);
}
@media (max-width:1023px){
  .ll-lang{margin-left:0.35rem}
}
