/* learn-v2 — expandable GEO article system (list + detail templates) */

body.ll-shell[data-page^="learn"]{
  background:var(--ll-bg);
}

/* ——— shared chrome ——— */
.ln-breadcrumb{
  display:flex;flex-wrap:wrap;align-items:center;gap:0.45rem;
  margin:0 0 1.15rem;font-size:0.86rem;color:var(--ll-muted);
}
.ln-breadcrumb a{color:var(--ll-muted)}
.ln-breadcrumb a:hover{color:var(--ll-ink)}
.ln-breadcrumb__sep{opacity:0.45}
.ln-breadcrumb [aria-current="page"]{color:var(--ll-ink)}

.ln-label{
  margin:0 0 0.65rem;font-size:0.78rem;font-weight:500;
  letter-spacing:0.14em;color:rgba(15,16,18,0.42);
}
.visually-hidden{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;
}

/* category label on list rows (tabs are .ln-cats__list) */
.ln-cat{
  display:inline-flex;align-items:center;
  margin:0;padding:0;
  border:0;border-radius:0;
  font-size:0.78rem;font-weight:520;letter-spacing:0.02em;
  color:rgba(15,16,18,0.55);background:transparent;
  line-height:1.3;
}
/* article detail pages keep subtle chip */
.ln-article .ln-cat{
  padding:0.2rem 0.55rem;
  border:1px solid var(--ll-line);border-radius:4px;
  background:rgba(15,16,18,0.03);
  color:rgba(15,16,18,0.62);
}

/* ——— hub hero: dual column, light band ———
   Round 3.1: vertical center (slightly high), not flex-end stick-to-bottom.
   Avoid half-viewport structural void under the nav. */
.ln-hub-hero{
  /*
   * Round 3.2 — balanced top/bottom air (not “peek only 80–150”).
   * R3:   flex-end + tall min-height → void under nav.
   * R3.1: content up, but min-height ~84svh (756px) → ~330px void under content.
   * R3.2: height from content + balanced padding; ≤~68–72svh on desktop.
   *        top air ~100–150; bottom air ~120–210; dark featured enters first screen naturally.
   * No absolute / negative margin / transform.
   */
  min-height:clamp(36rem,68svh,40rem); /* ~612px @900 — target band 590–640 */
  max-height:none;
  display:flex;
  align-items:flex-start; /* top air via padding; do not glue to bottom */
  justify-content:center;
  padding:
    calc(var(--shell-header-height, 4.5rem) + 7.75rem) /* nav → content ~100–150 @1440 */
    var(--ll-gutter)
    clamp(4.5rem, 8vh, 6rem); /* bottom air so content→featured ~120–210, balanced vs top */
  background:var(--ll-bg);
  box-sizing:border-box;
}
.ln-hub-hero__inner{
  width:min(var(--ll-max),100%);margin:0 auto;
  display:grid;
  grid-template-columns:minmax(0,0.54fr) minmax(0,0.4fr);
  gap:clamp(1.75rem,4vw,3.5rem);
  align-items:center; /* left title block + 01–03 share visual mid */
}
.ln-hub-hero__main{min-width:0;max-width:36rem}
.ln-hub-hero h1{
  margin:0;max-width:12em;
  font-size:3.75rem; /* 60px — fixed, no vw */
  font-weight:420;
  letter-spacing:0;
  line-height:1.08;color:var(--ll-ink);
}
.ln-hub-hero__lead{
  margin:1.15rem 0 0;max-width:38ch;
  font-size:1.08rem;line-height:1.7;color:var(--ll-muted);
}

/* right column: numbered wayfinding index */
.ln-hub-index{
  display:flex;flex-direction:column;
  min-width:0;
  border-top:1px solid var(--ll-line);
}
.ln-hub-index__row{
  display:grid;
  grid-template-columns:2.75rem minmax(0,1fr) 1.5rem;
  gap:0.65rem 0.85rem;
  align-items:center;
  min-height:4.25rem;
  padding:0.95rem 0.15rem;
  border-bottom:1px solid var(--ll-line);
  color:var(--ll-ink);
  text-decoration:none;
}
.ln-hub-index__num{
  font-size:0.82rem;font-weight:520;
  font-variant-numeric:tabular-nums;
  color:var(--ll-blue);
}
.ln-hub-index__body{min-width:0;display:flex;flex-direction:column;gap:0.2rem}
.ln-hub-index__title{
  font-size:0.98rem;font-weight:520;line-height:1.3;color:var(--ll-ink);
}
.ln-hub-index__desc{
  font-size:0.86rem;line-height:1.4;color:var(--ll-muted);
}
.ln-hub-index__arrow{
  width:0.85rem;height:0.85rem;justify-self:end;
  border-right:1.5px solid rgba(15,16,18,0.35);
  border-top:1.5px solid rgba(15,16,18,0.35);
  transform:rotate(45deg);
  transition:border-color 0.2s ease;
}
.ln-hub-index__row:hover .ln-hub-index__title{color:var(--ll-blue)}
.ln-hub-index__row:hover .ln-hub-index__num{color:var(--ll-blue)}
.ln-hub-index__row:hover .ln-hub-index__arrow{
  border-color:var(--ll-blue);
}
.ln-hub-index__row:focus-visible{
  outline:2px solid var(--ll-blue);outline-offset:3px;
}

/* ——— featured: near-black editorial band ——— */
.ln-featured{
  min-height:72svh;
  display:flex;align-items:stretch;
  padding:clamp(3.5rem,7vw,5.5rem) var(--ll-gutter);
  background:#121315;
  color:#f2f2f4;
  box-sizing:border-box;
}
.ln-featured__inner{
  width:min(var(--ll-max),100%);margin:0 auto;
  display:flex;flex-direction:column;justify-content:center;
}
.ln-featured__head{
  display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;
  gap:0.75rem 1.5rem;margin:0 0 clamp(1.75rem,3.5vw,2.5rem);
}
.ln-featured__eyebrow{
  margin:0 0 0.55rem;font-size:0.78rem;font-weight:500;
  letter-spacing:0.14em;color:rgba(242,242,244,0.45);
}
.ln-featured__head h2{
  margin:0;font-size:2.15rem;font-weight:420;
  letter-spacing:0;line-height:1.15;color:#fdfdfd;
}
.ln-featured__aside{
  margin:0;font-size:0.92rem;line-height:1.5;color:rgba(242,242,244,0.52);
  max-width:16rem;text-align:right;
}

/* featured rows */
.ln-feed--featured{
  list-style:none;margin:0;padding:0;
  border-top:1px solid rgba(242,242,244,0.12);
  counter-reset:lnfeat;
}
.ln-feed--featured > .ln-entry--featured{
  counter-increment:lnfeat;
  border-bottom:1px solid rgba(242,242,244,0.12);
}
.ln-feed--featured .ln-entry__link{
  display:grid;
  grid-template-columns:4rem minmax(0,1fr) 2.5rem;
  gap:0.75rem 1.25rem;
  align-items:center;
  padding:clamp(1.35rem,2.5vw,1.85rem) 0.1rem;
  min-height:8.5rem;
}
.ln-feed--featured .ln-entry__link::before{
  content:counter(lnfeat, decimal-leading-zero);
  font-size:0.9rem;font-weight:520;
  font-variant-numeric:tabular-nums;
  color:var(--ll-blue);
  align-self:start;padding-top:0.2rem;
}
.ln-feed--featured .ln-entry__main{min-width:0}
.ln-feed--featured .ln-entry__meta{margin:0 0 0.55rem}
.ln-feed--featured .ln-cat{color:rgba(242,242,244,0.55)}
.ln-feed--featured .ln-entry__time{color:rgba(242,242,244,0.42)}
.ln-feed--featured .ln-entry__title{
  margin:0;
  font-size:2rem;font-weight:450;
  letter-spacing:0;line-height:1.25;color:#fdfdfd;
  overflow-wrap:anywhere;word-break:break-word;
}
.ln-feed--featured .ln-entry__summary{
  margin:0.55rem 0 0;max-width:48ch;
  font-size:0.98rem;line-height:1.6;color:rgba(242,242,244,0.58);
  overflow-wrap:anywhere;
}
.ln-feed--featured .ln-entry__go{
  font-size:0;color:transparent;
  width:1.35rem;height:1.35rem;justify-self:end;align-self:center;
  position:relative;
}
.ln-feed--featured .ln-entry__go::after{
  content:"";
  position:absolute;inset:0.15rem;
  border-right:1.5px solid rgba(242,242,244,0.55);
  border-top:1.5px solid rgba(242,242,244,0.55);
  transform:rotate(45deg);
}
.ln-feed--featured .ln-entry__link:hover .ln-entry__title{color:var(--ll-blue)}
.ln-feed--featured .ln-entry__link:hover .ln-entry__go::after{
  border-color:var(--ll-blue);
}
.ln-feed--featured .ln-entry__link:focus-visible{
  outline:2px solid var(--ll-blue);outline-offset:4px;
}

/* ——— all articles: white band + flat tabs ——— */
.ln-list-section{
  padding:clamp(3rem,6vw,4.5rem) var(--ll-gutter) clamp(3.5rem,7vw,5.5rem);
  background:#fff;
}
.ln-list-section__inner{width:min(var(--ll-max),100%);margin:0 auto}
.ln-list-section__head{margin:0 0 0.25rem}
.ln-list-section__head-row{
  display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;
  gap:0.5rem 1rem;margin:0 0 1.15rem;
}
.ln-list-section__head h2{
  margin:0;font-size:1.75rem;font-weight:420;
  letter-spacing:0;color:var(--ll-ink);
}
.ln-list-section__meta{font-size:0.9rem;color:var(--ll-muted)}

/* flat tabs (GEO_LEARN_CATS preserved) */
.ln-cats{margin:0 0 0.25rem;min-width:0}
.ln-cats__list{
  list-style:none;margin:0;padding:0;
  display:flex;flex-wrap:nowrap;gap:0 0.15rem;
  border-bottom:1px solid var(--ll-line);
  overflow-x:auto;-webkit-overflow-scrolling:touch;
  overscroll-behavior-x:contain;
  scrollbar-width:thin;
}
.ln-cats__list > li{flex:0 0 auto}
.ln-cats__list a{
  display:inline-flex;align-items:center;gap:0.35rem;
  min-height:2.75rem;padding:0.55rem 0.85rem 0.65rem;
  border:0;border-bottom:2px solid transparent;
  margin-bottom:-1px;border-radius:0;
  font-size:0.92rem;font-weight:500;
  color:rgba(15,16,18,0.48);background:transparent;
  white-space:nowrap;
  transition:color 0.15s ease, border-color 0.15s ease;
}
.ln-cats__list a:hover{color:var(--ll-ink)}
.ln-cats__list a.is-active{
  color:var(--ll-blue);
  border-bottom-color:var(--ll-blue);
  font-weight:520;
}
.ln-cats__n{
  font-size:0.78rem;font-weight:520;color:rgba(15,16,18,0.35);
}
.ln-cats__list a.is-active .ln-cats__n{color:var(--ll-blue)}
.ln-cats__list a:focus-visible{
  outline:2px solid var(--ll-blue);outline-offset:2px;
}

/* expandable article list — numbered editorial rows */
.ln-feed[data-learn-feed]{
  list-style:none;margin:0;padding:0;
  border-top:0;
  counter-reset:lnart;
}
.ln-feed[data-learn-feed] > .ln-entry:not(.is-hidden){
  counter-increment:lnart;
}
.ln-entry{
  border-bottom:1px solid var(--ll-line);
  min-width:0;
}
.ln-entry__link{
  display:grid;
  grid-template-columns:4rem minmax(0,1fr) 2.5rem;
  gap:0.65rem 1.25rem;
  align-items:center;
  padding:1.35rem 0.1rem;
  min-height:8.25rem;
  min-width:0;
}
.ln-feed[data-learn-feed] .ln-entry__link::before{
  content:counter(lnart, decimal-leading-zero);
  font-size:0.88rem;font-weight:520;
  font-variant-numeric:tabular-nums;
  color:var(--ll-blue);
  align-self:start;padding-top:0.15rem;
}
.ln-entry__main{min-width:0}
.ln-entry__meta{
  display:flex;flex-wrap:wrap;align-items:center;gap:0.45rem 0.75rem;
  margin:0 0 0.45rem;
}
.ln-entry__time{
  font-size:0.82rem;color:rgba(15,16,18,0.48);letter-spacing:0.01em;
}
.ln-entry__title{
  margin:0;
  font-size:1.45rem;font-weight:460;
  letter-spacing:0;line-height:1.3;color:var(--ll-ink);
  overflow-wrap:anywhere;word-break:break-word;
}
.ln-entry__summary{
  margin:0.45rem 0 0;max-width:54ch;
  font-size:0.98rem;line-height:1.55;color:var(--ll-muted);
  overflow-wrap:anywhere;
}
/* replace “阅读 →” with directional arrow */
.ln-entry__go{
  font-size:0;color:transparent;
  width:1.35rem;height:1.35rem;justify-self:end;align-self:center;
  position:relative;
}
.ln-entry__go::after{
  content:"";
  position:absolute;inset:0.15rem;
  border-right:1.5px solid rgba(15,16,18,0.4);
  border-top:1.5px solid rgba(15,16,18,0.4);
  transform:rotate(45deg);
  transition:border-color 0.15s ease;
}
.ln-entry__link:hover .ln-entry__title{color:var(--ll-blue)}
.ln-entry__link:hover .ln-entry__go::after{border-color:var(--ll-blue)}
.ln-entry__link:focus-visible{
  outline:2px solid var(--ll-blue);outline-offset:3px;
}
.ln-entry.is-hidden{display:none}

.ln-feed-empty{
  display:none;margin:1.25rem 0 0;font-size:0.95rem;color:var(--ll-muted);
}
.ln-feed-empty.is-visible{display:block}

/* ——— article detail template ———
   Desktop ≥1100: rail (TOC) + reading column as true grid children.
   ≤1099: single column; TOC sits at article start (rail first). */
.ln-article{
  padding:0 var(--ll-gutter) clamp(3.5rem,7vw,5.5rem);
  background:var(--ll-bg);
}
.ln-article__layout{
  /* ~1040–1120px total content band, centered */
  width:min(70rem,100%);
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:0;
  align-items:start;
}
.ln-article__rail{
  min-width:0;
}
/* reading column: long-form ~680–760px — never the 11rem rail track */
.ln-article__column{
  width:min(45rem,100%);
  max-width:760px;
  margin:0 auto;
  min-width:0;
}
@media (min-width:1100px){
  .ln-article__layout{
    grid-template-columns:minmax(9.5rem,11rem) minmax(0,45rem);
    justify-content:center;
    column-gap:clamp(2rem,3vw,3rem);
    row-gap:0;
    align-items:start;
  }
  .ln-article__column{
    margin:0;
    width:100%;
    max-width:760px;
  }
  .ln-article__rail{
    position:sticky;
    top:5.75rem;
    padding:0.85rem 0 0;
    align-self:start;
  }
  /* side TOC overrides live after base .ln-toc (see block below media) */
}
.ln-article__header{
  padding-top:clamp(5.5rem,10vw,6.75rem);
  padding-bottom:1.5rem;
  border-bottom:1px solid var(--ll-line);
  margin-bottom:1.5rem;
}
.ln-article__header .ln-cat{margin-bottom:0.85rem}
.ln-article__header h1{
  margin:0;
  /* fixed scale — no continuous vw; light editorial weight */
  font-size:2.15rem;font-weight:440;
  letter-spacing:-0.03em;line-height:1.22;color:var(--ll-ink);
  overflow-wrap:normal;
  word-break:normal;
  hyphens:none;
}
.ln-article__updated{
  margin:0.85rem 0 0;font-size:0.86rem;color:rgba(15,16,18,0.48);
}

/* direct answer */
.ln-answer{
  margin:0 0 1.75rem;padding:1.15rem 0 1.35rem;
  border-bottom:1px solid var(--ll-line);
}
.ln-answer p{
  margin:0 0 0.75rem;
  font-size:1.0625rem; /* 17px */
  line-height:1.75;
  color:rgba(15,16,18,0.82);
}
.ln-answer p:last-child{margin-bottom:0}

/* TOC — mobile / ≤1099: compact collapsible block at article start */
.ln-toc{
  margin:0 0 2rem;padding:1rem 1.1rem;
  border:1px solid var(--ll-line);border-radius:8px;
  background:var(--ll-white);
}
.ln-toc__title{
  margin:0 0 0.55rem;font-size:0.875rem;font-weight:520;
  letter-spacing:0.06em;color:rgba(15,16,18,0.5);
}
.ln-toc__toggle{
  display:flex;width:100%;align-items:center;justify-content:space-between;
  margin:0;padding:0;border:0;background:transparent;
  font:inherit;font-size:0.875rem;font-weight:520;letter-spacing:0.06em;
  color:rgba(15,16,18,0.5);cursor:pointer;text-align:left;
}
.ln-toc__panel{margin-top:0.55rem}
.ln-toc.is-collapsed .ln-toc__panel{display:none}
.ln-toc ol{
  margin:0;padding:0 0 0 1.15rem;
}
.ln-toc li{margin:0.4rem 0;font-size:0.9rem;line-height:1.45}
.ln-toc a{color:var(--ll-ink)}
.ln-toc a:hover{color:var(--ll-blue)}

/* desktop side rail — must follow base .ln-toc so card chrome is cleared */
@media (min-width:1100px){
  .ln-article__rail .ln-toc.ln-toc--side{
    margin:0;
    padding:0;
    border:0;
    background:transparent;
    border-radius:0;
    box-shadow:none;
  }
  .ln-article__rail .ln-toc.ln-toc--side .ln-toc__title{
    display:block;
    margin:0 0 0.75rem;
  }
  .ln-article__rail .ln-toc.ln-toc--side .ln-toc__toggle{display:none}
  .ln-article__rail .ln-toc.ln-toc--side .ln-toc__panel{
    margin-top:0;display:block !important;
  }
  .ln-article__rail .ln-toc.ln-toc--side ol{
    margin:0;padding:0;list-style:none;
  }
  .ln-article__rail .ln-toc.ln-toc--side li{margin:0}
  .ln-article__rail .ln-toc.ln-toc--side a{
    display:block;
    padding:0.4rem 0 0.4rem 0.7rem;
    font-size:0.9rem;
    line-height:1.45;
    color:rgba(15,16,18,0.62);
    border-left:2px solid transparent;
  }
  .ln-article__rail .ln-toc.ln-toc--side a:hover,
  .ln-article__rail .ln-toc.ln-toc--side a:focus-visible{
    color:var(--ll-blue);
    border-left-color:var(--ll-blue);
  }
}

@media (max-width:1099px){
  .ln-article__rail{
    position:static;
    padding:0;
    /* rail first in DOM → TOC before column content */
    margin:0;
  }
  .ln-article__rail .ln-toc{
    /* after fixed nav clearance: header padding lives on column header;
       give rail top space so TOC isn't under nav when scrolled to top */
    margin-top:clamp(5.25rem,12vw,6.25rem);
    margin-bottom:1.25rem;
  }
  .ln-article__header{
    padding-top:1.15rem;
  }
  .ln-toc__toggle{display:flex}
  .ln-toc__title{display:none}
  .ln-article__column{
    width:min(46rem,100%);
    max-width:none;
    margin:0 auto;
  }
}

/* body sections */
.ln-section{
  margin:0 0 2.15rem;scroll-margin-top:5.75rem;
  padding-bottom:0.25rem;
}
.ln-section + .ln-section{
  border-top:1px solid var(--ll-line);
  padding-top:1.75rem;
}
.ln-section h2{
  margin:0 0 0.9rem;
  font-size:1.3rem;font-weight:500;
  letter-spacing:-0.02em;line-height:1.3;color:var(--ll-ink);
}
.ln-section h3{
  margin:1.15rem 0 0.55rem;
  font-size:1.05rem;font-weight:520;color:var(--ll-ink);
}
.ln-section p{
  margin:0 0 0.95rem;
  font-size:1.0625rem; /* 17px — ~32–42 CJK/line at 680–760px */
  line-height:1.75;
  color:var(--ll-muted);
  overflow-wrap:normal;
  word-break:normal;
}
.ln-section ul,.ln-section ol{
  margin:0.35rem 0 0.95rem;padding-left:1.25rem;
}
.ln-section li{
  margin:0.4rem 0;font-size:1.0625rem;line-height:1.7;color:var(--ll-muted);
}
.ln-section a{
  color:var(--ll-blue);font-weight:500;
  overflow-wrap:anywhere; /* long URLs only */
}
.ln-section a:hover{text-decoration:underline}

/* definition / callout */
.ln-callout{
  margin:1rem 0 1.25rem;padding:0.95rem 1.05rem;
  border-left:3px solid var(--ll-blue);
  background:rgba(0,113,227,0.05);
  border-radius:0 6px 6px 0;
}
.ln-callout p{
  margin:0;font-size:0.98rem;line-height:1.65;color:rgba(15,16,18,0.72);
}
.ln-callout p + p{margin-top:0.55rem}

/* steps */
.ln-steps{
  list-style:none;margin:0.75rem 0 1rem;padding:0;
  border-top:1px solid var(--ll-line);
}
.ln-steps li{
  display:grid;grid-template-columns:2.5rem minmax(0,1fr);
  gap:0.5rem 0.85rem;padding:0.85rem 0;
  border-bottom:1px solid var(--ll-line);
  font-size:1rem;line-height:1.55;color:var(--ll-muted);
}
.ln-steps__n{
  font-size:0.8rem;font-weight:520;letter-spacing:0.1em;color:var(--ll-blue);
}
.ln-steps strong{display:block;margin-bottom:0.2rem;color:var(--ll-ink);font-weight:520}

/* table */
.ln-table-wrap{
  margin:0.85rem 0 1.15rem;overflow-x:auto;-webkit-overflow-scrolling:touch;
}
.ln-table{
  width:100%;min-width:28rem;border-collapse:collapse;font-size:0.94rem;
}
.ln-table caption{
  caption-side:top;text-align:left;margin:0 0 0.55rem;
  font-size:0.88rem;color:var(--ll-muted);
}
.ln-table th,.ln-table td{
  padding:0.75rem 0.65rem;text-align:left;vertical-align:top;
  border-bottom:1px solid var(--ll-line);line-height:1.5;
}
.ln-table th{
  font-weight:520;color:var(--ll-ink);
  border-bottom-color:rgba(15,16,18,0.16);
}
.ln-table td{color:var(--ll-muted)}
.ln-table a{color:var(--ll-blue);font-weight:500}

/* figure caption style */
.ln-figcaption{
  margin:0.45rem 0 0;font-size:0.82rem;letter-spacing:0.02em;
  color:rgba(15,16,18,0.45);
}

/* fact boundary */
.ln-boundary{
  margin:1.75rem 0 2rem;padding:1.15rem 1.15rem 1.2rem;
  border:1px solid var(--ll-line);border-radius:8px;
  background:var(--ll-white);
}
.ln-boundary h2{
  margin:0 0 0.65rem;font-size:1.05rem;font-weight:520;color:var(--ll-ink);
}
.ln-boundary p,.ln-boundary li{
  margin:0 0 0.5rem;font-size:0.95rem;line-height:1.6;color:var(--ll-muted);
}
.ln-boundary ul{margin:0.35rem 0 0;padding-left:1.15rem}

/* related blocks */
.ln-related-block{
  margin:0 0 1.75rem;padding-top:1.25rem;
  border-top:1px solid var(--ll-line);
}
.ln-related-block h2{
  margin:0 0 0.65rem;font-size:1.05rem;font-weight:520;color:var(--ll-ink);
}
.ln-related-block a{
  display:block;padding:0.55rem 0;
  font-size:0.98rem;font-weight:500;color:var(--ll-ink);
  border-bottom:1px solid var(--ll-line);
  overflow-wrap:anywhere; /* paths / long URLs */
}
.ln-related-block a:hover{color:var(--ll-blue)}

.ln-article__foot{
  margin-top:0.5rem;padding-top:1.35rem;border-top:1px solid var(--ll-line);
  display:flex;flex-wrap:wrap;gap:0.75rem 1rem;align-items:center;
}
body.ll-shell a.ln-btn,
.ln-btn{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:2.65rem;padding:0.5rem 1.15rem;border-radius:999px;
  font-size:0.94rem;font-weight:520;
}
body.ll-shell a.ln-btn--primary,
.ln-btn--primary{
  background:var(--ll-blue);color:#fff !important;border:1px solid transparent;
}
body.ll-shell a.ln-btn--ghost,
.ln-btn--ghost{
  background:transparent;color:var(--ll-ink) !important;
  border:1px solid rgba(15,16,18,0.18);
}
.ln-btn--ghost:hover{border-color:rgba(15,16,18,0.4)}

body.ll-shell[data-page^="learn"] .ll-footer{min-height:auto}

/* ——— responsive ——— */
@media (max-width:1100px){
  .ln-hub-hero{
    min-height:auto;
    align-items:flex-start;
    justify-content:flex-start;
    /* content-driven height; top/bottom air ~48–80 at 1024 */
    padding-top:calc(var(--shell-header-height, 4.5rem) + 3rem);
    padding-bottom:clamp(2.75rem,5vh,3.75rem);
  }
  .ln-hub-hero__inner{
    grid-template-columns:1fr;
    gap:2rem;
    align-items:start;
  }
  .ln-hub-hero h1{font-size:2.85rem}
  .ln-featured{min-height:auto}
  .ln-feed--featured .ln-entry__title{font-size:1.65rem}
}
@media (max-width:900px){
  .ln-hub-hero h1{font-size:2.5rem}
  .ln-feed--featured .ln-entry__link,
  .ln-feed[data-learn-feed] .ln-entry__link{
    grid-template-columns:3rem minmax(0,1fr) 1.75rem;
    gap:0.5rem 0.75rem;
    min-height:0;
    padding:1.15rem 0;
  }
  .ln-feed--featured .ln-entry__title{font-size:1.45rem}
  .ln-entry__title{font-size:1.2rem}
  .ln-featured__aside{text-align:left;max-width:none}
}
@media (max-width:640px){
  /* natural document flow — no desktop viewport height / no first-screen compression */
  .ln-hub-hero{
    min-height:auto;
    align-items:flex-start;
    justify-content:flex-start;
    padding-top:calc(var(--shell-header-height, 4.5rem) + 1.15rem);
    padding-bottom:2rem;
  }
  .ln-hub-hero h1{
    font-size:2.5rem; /* ~40px — keep primary title scale */
    /*
     * Round 3.3 — mobile H1 only.
     * Title is 9 CJK (数字化义齿设计知识). At 1em/glyph, 8em fits 8 chars → “…知 / 识” orphan.
     * 7.5em caps the first line at 7 glyphs → 数字化义齿设计 / 知识.
     */
    max-width:7.5em;
  }
  .ln-hub-hero__lead{max-width:none}
  .ln-hub-index__row{
    min-height:3.75rem;
    grid-template-columns:2.35rem minmax(0,1fr) 1.25rem;
  }
  .ln-featured{
    min-height:auto;
    padding:2.75rem var(--ll-gutter) 3rem;
  }
  .ln-featured__head h2{font-size:1.75rem}
  .ln-feed--featured .ln-entry__link,
  .ln-feed[data-learn-feed] .ln-entry__link{
    grid-template-columns:2.5rem minmax(0,1fr) 1.5rem;
    align-items:start;
  }
  .ln-feed--featured .ln-entry__link::before,
  .ln-feed[data-learn-feed] .ln-entry__link::before{
    padding-top:0.1rem;
  }
  .ln-feed--featured .ln-entry__title{font-size:1.3rem}
  .ln-entry__title{font-size:1.15rem}
  .ln-entry__summary,
  .ln-feed--featured .ln-entry__summary{max-width:none}
  .ln-entry__go,
  .ln-feed--featured .ln-entry__go{
    align-self:start;
    margin-top:0.15rem;
  }
  .ln-list-section__head h2{font-size:1.5rem}
  .ln-cats__list a{
    min-height:2.6rem;
    padding:0.5rem 0.7rem 0.55rem;
    font-size:0.86rem;
  }
  .ln-article__foot{flex-direction:column;align-items:stretch}
  .ln-btn{width:100%}
  .ln-article{
    /* ~20–24px side air via shell gutter already; keep content readable */
    padding-left:var(--ll-gutter);
    padding-right:var(--ll-gutter);
  }
  .ln-article__header h1{
    font-size:1.85rem;
    line-height:1.25;
    /* never single-glyph columns */
    max-width:none;
    word-break:normal;
    overflow-wrap:normal;
  }
  .ln-section p,
  .ln-section li,
  .ln-answer p{
    font-size:1.05rem;
    word-break:normal;
    overflow-wrap:normal;
  }
}
/* ultra-narrow: content ~272px — shave font so 7 glyphs still fit (no 单字孤行) */
@media (max-width:340px){
  .ln-hub-hero h1{
    font-size:2.375rem; /* 38px; still hero-scale */
    max-width:7.5em;
  }
}
@media (prefers-reduced-motion:reduce){
  .ln-cats__list a,.ln-entry__link,.ln-btn,
  .ln-hub-index__arrow{transition:none}
}
