/* SafeStudy UK V7.9.1d publication polish
   Final authoritative public presentation layer.
   Purpose: unify desktop geometry and reading floors while allowing each
   route to use the editorial composition that best fits its content. */

/* -------------------------------------------------------------------------
   HOMEPAGE AUDIENCE STRIP
   ------------------------------------------------------------------------- */
@media (min-width:901px){
  html:not(.chinese) .audience-card .card-title{
    display:block!important;
    white-space:nowrap!important;
    font-size:clamp(17.5px,1.18vw,20.5px)!important;
    line-height:1.16!important;
    letter-spacing:-.022em!important;
  }
  html:not(.chinese) .audience-card .card-title br{display:none!important}
  .audience-card .card-caption{
    font-size:clamp(12.7px,.79vw,13.8px)!important;
    line-height:1.42!important;
  }
  .audience-card .card-overline{font-size:10.5px!important}
}

/* -------------------------------------------------------------------------
   CANONICAL DESKTOP SELECTED-PAGE SHELL
   ------------------------------------------------------------------------- */
@media (min-width:1101px){
  .explore-page:not([data-route="privacy"]):not([data-route="terms"]):not([data-route="contact"]){
    height:100svh!important;
    min-height:100svh!important;
    grid-template-rows:auto auto minmax(0,1fr) auto!important;
    overflow:hidden!important;
  }
  .explore-page:not([data-route="privacy"]):not([data-route="terms"]):not([data-route="contact"]) .explore-main{
    width:100%!important;
    max-width:none!important;
    min-height:0!important;
    height:100%!important;
    margin:0!important;
    grid-template-columns:minmax(0,5fr) minmax(0,2fr)!important;
    align-items:stretch!important;
    overflow:hidden!important;
  }
  .explore-page:not([data-route="privacy"]):not([data-route="terms"]):not([data-route="contact"]) .route-copy,
  .explore-page:not([data-route="privacy"]):not([data-route="terms"]):not([data-route="contact"]) .route-aside{
    height:100%!important;
    min-height:0!important;
    max-height:none!important;
    align-self:stretch!important;
    overflow:hidden!important;
  }
  .explore-page:not([data-route="privacy"]):not([data-route="terms"]):not([data-route="contact"]) .route-copy{
    padding:clamp(23px,3.25vh,35px) clamp(46px,5.9vw,100px) 22px!important;
  }
  .explore-page:not([data-route="privacy"]):not([data-route="terms"]):not([data-route="contact"]) .route-aside{
    padding:clamp(25px,3.45vh,38px) clamp(30px,3vw,50px) 22px!important;
    border-left:1px solid var(--v51-line,#dce3df)!important;
    background:#fbfcf9!important;
  }

  /* Legal and contact documents should grow naturally rather than be clipped. */
  .explore-page:is([data-route="privacy"],[data-route="terms"],[data-route="contact"]){
    height:auto!important;
    min-height:100svh!important;
    grid-template-rows:auto auto auto auto!important;
    overflow:visible!important;
  }
  .explore-page:is([data-route="privacy"],[data-route="terms"],[data-route="contact"]) .explore-main{
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    grid-template-columns:minmax(0,5fr) minmax(0,2fr)!important;
    align-items:stretch!important;
    overflow:visible!important;
  }
  .explore-page:is([data-route="privacy"],[data-route="terms"],[data-route="contact"]) .route-copy,
  .explore-page:is([data-route="privacy"],[data-route="terms"],[data-route="contact"]) .route-aside{
    height:auto!important;
    max-height:none!important;
    overflow:visible!important;
  }

  /* Common editorial reading floor. */
  .explore-page .route-kicker{font-size:10.7px!important;line-height:1.3!important}
  .explore-page .route-title{
    font-size:clamp(45px,3.3vw,57px)!important;
    line-height:.98!important;
    letter-spacing:-.052em!important;
  }
  .explore-page .route-lead{
    margin-top:17px!important;
    font-size:15.6px!important;
    line-height:1.49!important;
    max-width:900px!important;
  }
  .explore-page .route-section h3{
    font-size:12.4px!important;
    line-height:1.3!important;
  }
  .explore-page .route-section p{
    font-size:14.55px!important;
    line-height:1.48!important;
  }
  .route-aside .proof-list-v51 b{
    font-size:12.6px!important;
    line-height:1.3!important;
  }
  .route-aside .proof-list-v51 p,
  .route-aside .aside-note-v51{
    font-size:13.85px!important;
    line-height:1.46!important;
  }
  .route-aside .aside-label{font-size:10.8px!important}
  .route-aside .support-link{font-size:11.5px!important}
  .explore-footer{
    min-height:45px!important;
    padding-top:7px!important;
    padding-bottom:7px!important;
  }

  /* Keep all standard primary editorial routes visually centred in Y without
     making short pages appear stranded at the top. */
  .explore-page:is([data-route="overview"],[data-route="understand"],[data-route="prepare"],[data-route="act"],[data-route="carry"],[data-route="students"],[data-route="families"]):not([data-route="month"]) .route-copy{
    display:flex!important;
    flex-direction:column!important;
    justify-content:center!important;
  }
  .explore-page:is([data-route="overview"],[data-route="understand"],[data-route="prepare"],[data-route="act"],[data-route="carry"],[data-route="students"],[data-route="families"]) .route-aside{
    display:flex!important;
    align-items:center!important;
  }
  .explore-page:is([data-route="overview"],[data-route="understand"],[data-route="prepare"],[data-route="act"],[data-route="carry"],[data-route="students"],[data-route="families"]) .route-aside .support-module{
    width:100%!important;
  }
}

/* -------------------------------------------------------------------------
   FAMILIES: ONE CALM EDITORIAL BLOCK
   ------------------------------------------------------------------------- */
.family-editorial-copy{
  max-width:930px;
  margin-top:27px;
  padding-top:19px;
  border-top:1px solid var(--v51-line,#dce3df);
}
.family-editorial-copy p{
  margin:0;
  color:#4e646b;
  font:400 15.1px/1.56 var(--sans);
}
.family-editorial-copy p+p{margin-top:13px}
.family-editorial-closing{
  max-width:930px;
  margin:17px 0 0;
  padding-top:15px;
  border-top:1px solid var(--v51-line,#dce3df);
  color:#263f49;
  font:400 17px/1.4 var(--serif);
}
html.chinese .family-editorial-copy p{font-size:14.6px;line-height:1.7}
html.chinese .family-editorial-closing{font-size:16px;line-height:1.55}

/* -------------------------------------------------------------------------
   MONTH: THREE LEVELS OF THE CALENDAR AS ONE RELATIONSHIP TOOL
   ------------------------------------------------------------------------- */
@media (min-width:1101px){
  .explore-page[data-route="month"] .route-copy{
    padding-top:clamp(17px,2.35vh,27px)!important;
    padding-bottom:15px!important;
    display:block!important;
  }
  .explore-page[data-route="month"] .route-aside{
    padding-top:clamp(17px,2.35vh,27px)!important;
    padding-bottom:15px!important;
  }
  .explore-page[data-route="month"] .route-title{
    font-size:clamp(42px,3.15vw,54px)!important;
    line-height:.96!important;
    max-width:13ch!important;
    margin:0!important;
  }
  html.chinese .explore-page[data-route="month"] .route-title{max-width:12ch!important}
  html.chinese .explore-page[data-route="month"] .route-title em{
    display:inline-block!important;
    white-space:nowrap!important;
  }
  .explore-page[data-route="month"] .route-lead{
    margin-top:13px!important;
    font-size:14.9px!important;
    line-height:1.46!important;
    max-width:900px!important;
  }
  .month-audience-teasers{
    max-width:none!important;
    margin-top:15px!important;
    padding-top:12px!important;
    gap:0!important;
  }
  .month-audience-teasers section{padding-right:18px!important}
  .month-audience-teasers section+section{padding-left:18px!important}
  .month-audience-teasers h3{
    margin-bottom:6px!important;
    font-size:10.6px!important;
    line-height:1.25!important;
  }
  .month-audience-teasers p{
    font-size:14.25px!important;
    line-height:1.43!important;
  }
  .month-view-progression{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    margin-top:15px;
    border-top:1px solid var(--v51-line,#dce3df);
    border-bottom:1px solid var(--v51-line,#dce3df);
  }
  .month-view-stage{
    display:grid;
    grid-template-columns:20px minmax(0,1fr);
    gap:8px;
    min-width:0;
    padding:13px 16px 13px 0;
  }
  .month-view-stage+.month-view-stage{
    border-left:1px solid var(--v51-line,#dce3df);
    padding-left:16px;
  }
  .month-stage-index{
    padding-top:2px;
    color:#a17e55;
    font:600 10px/1.2 var(--sans);
  }
  .month-view-stage h3{
    margin:0 0 5px;
    color:#355b57;
    font:650 11.4px/1.28 var(--sans);
    letter-spacing:.015em;
  }
  .month-view-stage p{
    margin:0;
    color:#52686e;
    font:400 13.75px/1.42 var(--sans);
  }
  .month-view-stage .month-main-cta{
    margin-top:8px!important;
    font-size:10.5px!important;
  }
  .month-tool-note{
    margin:10px 0 0;
    color:#62767a;
    font:400 12.8px/1.42 var(--sans);
  }
  html.chinese .month-audience-teasers p{font-size:13.9px!important;line-height:1.56!important}
  html.chinese .month-view-stage p{font-size:13.3px;line-height:1.55}
  html.chinese .month-tool-note{font-size:12.6px;line-height:1.55}

  /* Calendar text is intentionally compact, but not microscopic. */
  .explore-page[data-route="month"] .month-insight h4{font-size:15.2px!important;line-height:1.32!important}
  .explore-page[data-route="month"] .month-insight>p:not(.month-insight-meta),
  .explore-page[data-route="month"] .month-current-bridge p,
  .explore-page[data-route="month"] .month-insight-empty p{
    font-size:13.25px!important;
    line-height:1.42!important;
  }
  .explore-page[data-route="month"] .month-current-bridge h5{font-size:10.6px!important}
  .explore-page[data-route="month"] .month-deeper{font-size:10.5px!important}
}

/* -------------------------------------------------------------------------
   INVITATION: PREMIUM EDITORIAL BRIDGE, NOT A UTILITY WALL
   ------------------------------------------------------------------------- */
@media (min-width:1101px){
  .explore-page[data-route="invitation"] .route-copy{
    padding-top:clamp(23px,3.15vh,34px)!important;
    padding-bottom:18px!important;
  }
  .explore-page[data-route="invitation"] .route-aside{
    padding-top:clamp(27px,3.55vh,39px)!important;
    padding-bottom:18px!important;
    display:flex!important;
    align-items:center!important;
  }
  .explore-page[data-route="invitation"] .route-title{
    max-width:19ch!important;
    font-size:clamp(43px,3.05vw,52px)!important;
    line-height:.97!important;
  }
  .explore-page[data-route="invitation"] .route-lead{
    max-width:940px!important;
    margin-top:15px!important;
    font-size:14.75px!important;
    line-height:1.47!important;
  }
  .invitation-editorial-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:0;
    margin-top:17px;
    border-top:1px solid var(--v51-line,#dce3df);
    border-bottom:1px solid var(--v51-line,#dce3df);
  }
  .invitation-editorial-block{
    padding:14px 20px 14px 0;
    min-width:0;
  }
  .invitation-editorial-block+.invitation-editorial-block{
    padding-left:20px;
    border-left:1px solid var(--v51-line,#dce3df);
  }
  .invitation-editorial-block h3,
  .invitation-editorial-conclusion h3{
    margin:0 0 6px;
    color:#355b57;
    font:650 11.8px/1.3 var(--sans);
    letter-spacing:.015em;
  }
  .invitation-editorial-block p,
  .invitation-editorial-conclusion p{
    margin:0;
    color:#51676d;
    font:400 13.9px/1.45 var(--sans);
  }
  .invitation-editorial-conclusion{
    margin-top:12px;
    padding-top:12px;
    border-top:1px solid var(--v51-line,#dce3df);
    max-width:970px;
  }
  .explore-page[data-route="invitation"] .invite-inline{width:100%!important;max-width:none!important}
  .explore-page[data-route="invitation"] .invite-path{padding-top:16px!important;padding-bottom:5px!important}
  .explore-page[data-route="invitation"] .invite-path:first-of-type{margin-top:0!important}
  .explore-page[data-route="invitation"] .invite-path-label{
    font-size:10.6px!important;
    line-height:1.3!important;
  }
  .explore-page[data-route="invitation"] .invite-path p,
  .explore-page[data-route="invitation"] .invite-inline>p{
    font-size:13.9px!important;
    line-height:1.45!important;
  }
  .explore-page[data-route="invitation"] .invite-separator{
    margin:13px 0 2px!important;
    opacity:.72;
  }
  .explore-page[data-route="invitation"] .code-form{margin-top:13px!important}
  .explore-page[data-route="invitation"] .code-row input{font-size:14px!important}
  .explore-page[data-route="invitation"] .micro-button{font-size:11.2px!important}
  html.chinese .invitation-editorial-block p,
  html.chinese .invitation-editorial-conclusion p{font-size:13.5px;line-height:1.58}
}

/* Advisers carry more material; reclaim space from margins, never from the
   reading floor. */
@media (min-width:1101px){
  .explore-page[data-route="advisers"] .route-copy{padding-top:20px!important;padding-bottom:15px!important}
  .explore-page[data-route="advisers"] .route-title{font-size:clamp(41px,2.9vw,50px)!important}
  .explore-page[data-route="advisers"] .route-lead{margin-top:13px!important;font-size:14.8px!important;line-height:1.45!important}
  .explore-page[data-route="advisers"] .route-sections{margin-top:15px!important;gap:0 28px!important}
  .explore-page[data-route="advisers"] .route-section{padding-top:11px!important}
  .explore-page[data-route="advisers"] .route-section:nth-child(n+3){margin-top:10px!important;padding-top:11px!important}
  .explore-page[data-route="advisers"] .route-section p{font-size:14px!important;line-height:1.43!important}
  .explore-page[data-route="advisers"] .route-prompt{margin-top:11px!important;padding-top:10px!important}
  .explore-page[data-route="advisers"] .route-prompt p{font-size:17px!important}
  .explore-page[data-route="advisers"] .route-aside{padding-top:20px!important;padding-bottom:15px!important}
  .explore-page[data-route="advisers"] .proof-list-v51>div{padding-top:10px!important;padding-bottom:10px!important}
}

/* -------------------------------------------------------------------------
   COMPACT LAPTOP HEIGHTS: preserve readable copy, reduce only excess air.
   ------------------------------------------------------------------------- */
@media (min-width:1101px) and (max-height:830px){
  .explore-page:not([data-route="privacy"]):not([data-route="terms"]):not([data-route="contact"]) .route-copy{
    padding-top:17px!important;
    padding-bottom:12px!important;
  }
  .explore-page:not([data-route="privacy"]):not([data-route="terms"]):not([data-route="contact"]) .route-aside{
    padding-top:17px!important;
    padding-bottom:12px!important;
  }
  .explore-page .route-title{font-size:clamp(39px,2.8vw,48px)!important}
  .explore-page .route-lead{margin-top:11px!important;font-size:14.5px!important;line-height:1.43!important}
  .explore-page .route-section p{font-size:14px!important;line-height:1.42!important}
  .explore-footer{min-height:40px!important;padding-top:4px!important;padding-bottom:4px!important}

  .explore-page[data-route="month"] .route-title{font-size:clamp(38px,2.7vw,46px)!important}
  .explore-page[data-route="month"] .route-lead{font-size:14px!important;line-height:1.4!important;margin-top:8px!important}
  .month-audience-teasers{margin-top:10px!important;padding-top:9px!important}
  .month-audience-teasers p{font-size:13.55px!important;line-height:1.39!important}
  .month-view-progression{margin-top:10px!important}
  .month-view-stage{padding-top:9px!important;padding-bottom:9px!important}
  .month-view-stage p{font-size:13.15px!important;line-height:1.37!important}
  .month-tool-note{margin-top:7px!important;font-size:12.2px!important}
  .explore-page[data-route="month"] .route-aside{padding-top:13px!important}

  .explore-page[data-route="invitation"] .route-title{font-size:clamp(38px,2.65vw,46px)!important;max-width:21ch!important}
  .explore-page[data-route="invitation"] .route-lead{font-size:13.9px!important;line-height:1.4!important;margin-top:9px!important}
  .invitation-editorial-grid{margin-top:10px!important}
  .invitation-editorial-block{padding-top:9px!important;padding-bottom:9px!important}
  .invitation-editorial-block p,.invitation-editorial-conclusion p{font-size:13.15px!important;line-height:1.39!important}
  .invitation-editorial-conclusion{margin-top:8px!important;padding-top:8px!important}
  .explore-page[data-route="invitation"] .invite-path{padding-top:10px!important}
  .explore-page[data-route="invitation"] .invite-path p{font-size:13.25px!important;line-height:1.4!important}

  .family-editorial-copy{margin-top:18px;padding-top:14px}
  .family-editorial-copy p{font-size:14.3px!important;line-height:1.48!important}
  .family-editorial-copy p+p{margin-top:9px}
  .family-editorial-closing{margin-top:12px;padding-top:11px;font-size:16px}
}

/* -------------------------------------------------------------------------
   MOBILE / PHONE
   ------------------------------------------------------------------------- */
@media (max-width:900px){
  .family-editorial-copy{margin-top:22px;padding-top:16px}
  .family-editorial-copy p{font-size:15px;line-height:1.6}
  html.chinese .family-editorial-copy p{font-size:14.6px;line-height:1.72}
  .family-editorial-closing{font-size:17px}

  .month-view-progression{
    display:grid;
    margin-top:18px;
    border-top:1px solid var(--v51-line,#dce3df);
  }
  .month-view-stage{
    display:grid;
    grid-template-columns:24px minmax(0,1fr);
    gap:8px;
    padding:14px 0;
    border-bottom:1px solid var(--v51-line,#dce3df);
  }
  .month-stage-index{color:#a17e55;font:600 10px/1.3 var(--sans)}
  .month-view-stage h3{margin:0 0 6px;font:650 12px/1.3 var(--sans);color:#355b57}
  .month-view-stage p{margin:0;font:400 14.5px/1.52 var(--sans);color:#52686e}
  html.chinese .month-view-stage p{font-size:14.2px;line-height:1.65}
  .month-tool-note{margin:13px 0 0;font:400 13.5px/1.5 var(--sans);color:#62767a}
  html.chinese .month-tool-note{font-size:13.2px;line-height:1.65}

  .invitation-editorial-grid{display:grid;margin-top:20px;border-top:1px solid var(--v51-line,#dce3df)}
  .invitation-editorial-block{padding:15px 0;border-bottom:1px solid var(--v51-line,#dce3df)}
  .invitation-editorial-block h3,.invitation-editorial-conclusion h3{margin:0 0 6px;font:650 12px/1.3 var(--sans);color:#355b57}
  .invitation-editorial-block p,.invitation-editorial-conclusion p{margin:0;font:400 14.5px/1.54 var(--sans);color:#51676d}
  html.chinese .invitation-editorial-block p,html.chinese .invitation-editorial-conclusion p{font-size:14.1px;line-height:1.68}
  .invitation-editorial-conclusion{margin-top:15px;padding-top:15px;border-top:1px solid var(--v51-line,#dce3df)}
}

/* Final mobile toolbar naming: concept page is Invitation, code field is the
   place where invitation access actually occurs. */
@media(max-width:760px) and (orientation:portrait){
  html.v88 .v31-sitebar__invite.invitation::before{content:'Invitation'!important;font-size:8.7px!important}
  html.chinese.v88 .v31-sitebar__invite.invitation::before{content:'邀请'!important;font-size:9px!important}
}

/* Release-candidate shell correction. The visible public selected-page shell
   has three grid children at desktop (route navigation, main content, footer);
   the separate site toolbar is outside this grid. Keeping exactly three rows
   lets the flexible main row absorb spare height and keeps the footer at the
   bottom instead of creating a dead fourth row. */
@media (min-width:1101px){
  .explore-page:not([data-route="privacy"]):not([data-route="terms"]):not([data-route="contact"]){
    grid-template-rows:auto minmax(0,1fr) auto!important;
  }
  .explore-page:not([data-route="privacy"]):not([data-route="terms"]):not([data-route="contact"]) .explore-main{
    height:auto!important;
  }
  .explore-page:not([data-route="privacy"]):not([data-route="terms"]):not([data-route="contact"]) .route-copy,
  .explore-page:not([data-route="privacy"]):not([data-route="terms"]):not([data-route="contact"]) .route-aside{
    height:auto!important;
  }
  .explore-page:is([data-route="privacy"],[data-route="terms"],[data-route="contact"]){
    grid-template-rows:auto auto auto!important;
  }

  /* Override earlier route-specific homepage teaser reductions. */
  html.v88:not(.chinese) body .audience .audience-card[data-open] .card-title{
    font-size:clamp(17.5px,1.18vw,20.3px)!important;
    line-height:1.16!important;
    letter-spacing:-.022em!important;
    white-space:nowrap!important;
    max-width:none!important;
  }
}

/* Invitation alignment correction: match the established editorial axis used
   by Students and Families instead of centring a narrow title block inside
   the left pane. */
@media (min-width:1101px){
  body .explore-page[data-route="invitation"] .route-copy{
    align-items:stretch!important;
    justify-content:flex-start!important;
    padding-left:clamp(46px,5.9vw,100px)!important;
    padding-right:clamp(46px,5.4vw,92px)!important;
  }
  body .explore-page[data-route="invitation"] #explore-title.route-title{
    max-width:24ch!important;
    width:auto!important;
    margin-left:0!important;
    margin-right:0!important;
  }
  body .explore-page[data-route="invitation"] .route-kicker,
  body .explore-page[data-route="invitation"] .route-lead,
  body .explore-page[data-route="invitation"] .invitation-editorial-grid,
  body .explore-page[data-route="invitation"] .invitation-editorial-conclusion{
    margin-left:0!important;
    margin-right:0!important;
  }
}

/* ========================================================================
   V7.9.1d FINAL SYSTEM LOCKS
   These rules implement the release lessons learned. They deliberately set
   hierarchy by role rather than shrinking individual components to make copy
   fit. Short screens recover space from margins and gaps, never from ordinary
   explanatory text.
   ======================================================================== */

/* Homepage: one symmetric four-card typographic system. */
@media (min-width:901px){
  html.v88 .audience-card{
    padding-left:clamp(26px,2.15vw,38px)!important;
    padding-right:clamp(20px,1.65vw,30px)!important;
    gap:clamp(14px,1.15vw,20px)!important;
  }
  html.v88 .audience-card .card-content{
    min-width:0!important;
    flex:1 1 auto!important;
    width:auto!important;
    max-width:none!important;
  }
  html.v88 .audience-card .card-title,
  html.v88 .audience-card[data-open] .card-title{
    display:block!important;
    width:max-content!important;
    max-width:100%!important;
    white-space:nowrap!important;
    text-wrap:nowrap!important;
    overflow-wrap:normal!important;
    font-size:clamp(19px,1.16vw,20.6px)!important;
    line-height:1.13!important;
    letter-spacing:-.026em!important;
  }
  html.v88 .audience-card .card-title br{display:none!important}
  html.v88 .audience-card .card-caption,
  html.v88 .audience-card[data-open] .card-caption{
    max-width:34ch!important;
    font-size:clamp(14.2px,.86vw,14.9px)!important;
    line-height:1.42!important;
    letter-spacing:0!important;
  }
  html.chinese.v88 .audience-card .card-title,
  html.chinese.v88 .audience-card[data-open] .card-title{
    width:max-content!important;
    max-width:100%!important;
    white-space:nowrap!important;
    text-wrap:nowrap!important;
    font-size:clamp(18px,1.08vw,19.3px)!important;
    line-height:1.22!important;
    letter-spacing:0!important;
  }
  html.chinese.v88 .audience-card .card-title br{display:none!important}
  html.chinese.v88 .audience-card .card-caption,
  html.chinese.v88 .audience-card[data-open] .card-caption{
    max-width:32ch!important;
    font-size:clamp(14px,.83vw,14.6px)!important;
    line-height:1.5!important;
  }
}

/* Persistent invitation action explains the visitor's position. The route
   page/tab remains simply Invitation / 邀请. */
.v31-sitebar__invite{min-width:176px!important;width:auto!important;max-width:none!important}
@media(max-width:760px) and (orientation:portrait){
  .v31-sitebar__invite{width:112px!important;min-width:112px!important;max-width:112px!important}
  html.v88 .v31-sitebar__invite.invitation::before{content:'Have an invitation?'!important;font-size:8.15px!important;letter-spacing:0!important}
  html.chinese.v88 .v31-sitebar__invite.invitation::before{content:'已有邀请？'!important;font-size:9px!important;letter-spacing:.02em!important}
}

/* Desktop reading floor. Labels, dates, calendar-day numerals and metadata are
   intentionally exempt. */
@media (min-width:1101px){
  .explore-page .route-lead{
    font-size:16.2px!important;
    line-height:1.5!important;
  }
  .explore-page .route-section p,
  .family-editorial-copy p,
  .month-audience-teasers p,
  .month-view-stage p,
  .month-tool-note,
  .route-aside .proof-list-v51 p,
  .route-aside .aside-note-v51,
  .invitation-editorial-block p,
  .invitation-editorial-conclusion p,
  .explore-page[data-route="invitation"] .invite-path p,
  .explore-page[data-route="invitation"] .invite-inline>p,
  .explore-page[data-route="month"] .month-insight>p:not(.month-insight-meta),
  .explore-page[data-route="month"] .month-current-bridge p,
  .explore-page[data-route="month"] .month-insight-empty p{
    font-size:15.7px!important;
    line-height:1.48!important;
  }
  .explore-page .route-section h3,
  .month-view-stage h3,
  .invitation-editorial-block h3,
  .invitation-editorial-conclusion h3{
    font-size:13.2px!important;
    line-height:1.3!important;
  }
  .route-aside .proof-list-v51 b{
    font-size:13.2px!important;
    line-height:1.32!important;
  }
  .route-aside .support-link{font-size:12.4px!important}

  html.chinese .explore-page .route-lead{font-size:15.8px!important;line-height:1.62!important}
  html.chinese .explore-page .route-section p,
  html.chinese .family-editorial-copy p,
  html.chinese .month-audience-teasers p,
  html.chinese .month-view-stage p,
  html.chinese .month-tool-note,
  html.chinese .route-aside .proof-list-v51 p,
  html.chinese .route-aside .aside-note-v51,
  html.chinese .invitation-editorial-block p,
  html.chinese .invitation-editorial-conclusion p,
  html.chinese .explore-page[data-route="invitation"] .invite-path p,
  html.chinese .explore-page[data-route="invitation"] .invite-inline>p,
  html.chinese .explore-page[data-route="month"] .month-insight>p:not(.month-insight-meta),
  html.chinese .explore-page[data-route="month"] .month-current-bridge p,
  html.chinese .explore-page[data-route="month"] .month-insight-empty p{
    font-size:15.35px!important;
    line-height:1.62!important;
  }

  /* Families: lead and editorial body intentionally share one optical body
     scale. Weight, not size, carries emphasis. */
  .explore-page[data-route="families"] .route-lead,
  .explore-page[data-route="families"] .family-editorial-copy p{
    font-size:16px!important;
    line-height:1.52!important;
  }
  html.chinese .explore-page[data-route="families"] .route-lead,
  html.chinese .explore-page[data-route="families"] .family-editorial-copy p{
    font-size:15.6px!important;
    line-height:1.66!important;
  }

  /* Month: all three audience summaries and all three explanatory levels use
     a real reading size. Calendar metadata remains compact by design. */
  .explore-page[data-route="month"] .route-lead{font-size:16px!important;line-height:1.46!important}
  .month-audience-teasers{margin-top:13px!important;padding-top:11px!important}
  .month-audience-teasers h3{font-size:11.5px!important;margin-bottom:6px!important}
  .month-audience-teasers p{font-size:15.7px!important;line-height:1.46!important}
  .month-view-progression{margin-top:13px!important}
  .month-view-stage{padding-top:11px!important;padding-bottom:11px!important}
  .month-view-stage p{font-size:15.7px!important;line-height:1.44!important}
  .month-tool-note{margin-top:9px!important;font-size:15.7px!important;line-height:1.44!important}
  .explore-page[data-route="month"] .month-insight h4{font-size:16.3px!important;line-height:1.28!important}
  .explore-page[data-route="month"] .month-insight>p:not(.month-insight-meta),
  .explore-page[data-route="month"] .month-current-bridge p,
  .explore-page[data-route="month"] .month-insight-empty p{font-size:15.45px!important;line-height:1.44!important}
  html.chinese .month-audience-teasers p,
  html.chinese .month-view-stage p,
  html.chinese .month-tool-note{font-size:15.35px!important;line-height:1.58!important}

  /* Advisers: same reading floor as the rest of the publication, centred as a
     complete composition and with a right rail that can keep every mode label
     on one line. */
  .explore-page[data-route="advisers"] .route-copy{
    display:flex!important;
    flex-direction:column!important;
    justify-content:center!important;
    padding-top:14px!important;
    padding-bottom:14px!important;
  }
  .explore-page[data-route="advisers"] .route-aside{
    display:flex!important;
    align-items:center!important;
    padding-top:14px!important;
    padding-bottom:14px!important;
  }
  .explore-page[data-route="advisers"] .route-title{font-size:clamp(43px,3vw,51px)!important}
  .explore-page[data-route="advisers"] .route-lead{font-size:16px!important;line-height:1.46!important;margin-top:12px!important}
  .explore-page[data-route="advisers"] .route-sections{width:100%!important;max-width:none!important;margin-top:15px!important;gap:0 34px!important}
  .explore-page[data-route="advisers"] .route-section{padding-top:11px!important}
  .explore-page[data-route="advisers"] .route-section:nth-child(n+3){margin-top:9px!important;padding-top:11px!important}
  .explore-page[data-route="advisers"] .route-section p{font-size:15.7px!important;line-height:1.46!important;max-width:48ch!important}
  .explore-page[data-route="advisers"] .route-prompt{margin-top:10px!important;padding-top:9px!important}
  .explore-page[data-route="advisers"] .route-aside .support-module{max-width:520px!important}
  .explore-page[data-route="advisers"] .proof-list-v51>div{
    grid-template-columns:164px minmax(0,1fr)!important;
    gap:20px!important;
    padding-top:12px!important;
    padding-bottom:12px!important;
  }
  .explore-page[data-route="advisers"] .proof-list-v51 b{
    white-space:nowrap!important;
    font-size:13.2px!important;
  }
  .explore-page[data-route="advisers"] .proof-list-v51 p{font-size:15.4px!important;line-height:1.44!important}
  .explore-page[data-route="advisers"] .support-link{font-size:12.5px!important}

  /* Invitation explanatory body follows the same floor. */
  .explore-page[data-route="invitation"] .route-lead{font-size:16px!important;line-height:1.46!important}
  .invitation-editorial-block p,.invitation-editorial-conclusion p{font-size:15.7px!important;line-height:1.46!important}
  .explore-page[data-route="invitation"] .invite-path p{font-size:15.7px!important;line-height:1.46!important}
}

/* Short laptop heights preserve the floor. Only air and display sizes tighten. */
@media (min-width:1101px) and (max-height:830px){
  .explore-page:not([data-route="privacy"]):not([data-route="terms"]):not([data-route="contact"]) .route-copy,
  .explore-page:not([data-route="privacy"]):not([data-route="terms"]):not([data-route="contact"]) .route-aside{
    padding-top:10px!important;
    padding-bottom:9px!important;
  }
  .explore-page .route-title{font-size:clamp(40px,2.75vw,47px)!important}
  .explore-page .route-lead{margin-top:9px!important;font-size:16px!important;line-height:1.43!important}
  .explore-page .route-section p{font-size:15.7px!important;line-height:1.42!important}
  .route-aside .proof-list-v51 p,.route-aside .aside-note-v51{font-size:15.4px!important;line-height:1.42!important}
  .explore-footer{min-height:38px!important;padding-top:3px!important;padding-bottom:3px!important}

  .family-editorial-copy{margin-top:14px!important;padding-top:11px!important}
  .family-editorial-copy p{font-size:16px!important;line-height:1.46!important}
  .family-editorial-copy p+p{margin-top:7px!important}
  .family-editorial-closing{margin-top:9px!important;padding-top:8px!important}

  .explore-page[data-route="month"] .route-title{font-size:clamp(39px,2.62vw,45px)!important}
  .explore-page[data-route="month"] .route-lead{margin-top:7px!important;font-size:15.8px!important;line-height:1.4!important}
  .month-audience-teasers{margin-top:8px!important;padding-top:7px!important}
  .month-audience-teasers p{font-size:15.45px!important;line-height:1.38!important}
  .month-view-progression{margin-top:8px!important}
  .month-view-stage{padding-top:7px!important;padding-bottom:7px!important}
  .month-view-stage p{font-size:15.35px!important;line-height:1.36!important}
  .month-tool-note{margin-top:5px!important;font-size:15.35px!important;line-height:1.35!important}
  .explore-page[data-route="month"] .route-aside{padding-top:8px!important}
  .explore-page[data-route="month"] .month-insight>p:not(.month-insight-meta),
  .explore-page[data-route="month"] .month-current-bridge p,
  .explore-page[data-route="month"] .month-insight-empty p{font-size:15.2px!important;line-height:1.36!important}

  .explore-page[data-route="invitation"] .route-title{font-size:clamp(39px,2.6vw,45px)!important;max-width:24ch!important}
  .explore-page[data-route="invitation"] .route-lead{font-size:15.7px!important;line-height:1.4!important;margin-top:7px!important}
  .invitation-editorial-grid{margin-top:7px!important}
  .invitation-editorial-block{padding-top:7px!important;padding-bottom:7px!important}
  .invitation-editorial-block p,.invitation-editorial-conclusion p{font-size:15.35px!important;line-height:1.38!important}
  .invitation-editorial-conclusion{margin-top:6px!important;padding-top:6px!important}
  .explore-page[data-route="invitation"] .invite-path{padding-top:7px!important}
  .explore-page[data-route="invitation"] .invite-path p{font-size:15.35px!important;line-height:1.38!important}

  .explore-page[data-route="advisers"] .route-copy,
  .explore-page[data-route="advisers"] .route-aside{padding-top:8px!important;padding-bottom:8px!important}
  .explore-page[data-route="advisers"] .route-title{font-size:clamp(39px,2.65vw,45px)!important}
  .explore-page[data-route="advisers"] .route-lead{font-size:15.7px!important;line-height:1.4!important;margin-top:7px!important}
  .explore-page[data-route="advisers"] .route-sections{margin-top:9px!important;gap:0 26px!important}
  .explore-page[data-route="advisers"] .route-section{padding-top:7px!important}
  .explore-page[data-route="advisers"] .route-section:nth-child(n+3){margin-top:5px!important;padding-top:7px!important}
  .explore-page[data-route="advisers"] .route-section p{font-size:15.35px!important;line-height:1.37!important}
  .explore-page[data-route="advisers"] .proof-list-v51>div{padding-top:8px!important;padding-bottom:8px!important}
  .explore-page[data-route="advisers"] .proof-list-v51 p{font-size:15.1px!important;line-height:1.36!important}
}

/* Specificity lock against legacy route-specific compact rules. */
@media (min-width:1101px){
  html.v88 body .explore-page[data-route="month"] .month-audience-teasers p,
  html.v88 body .explore-page[data-route="month"] .month-view-stage p,
  html.v88 body .explore-page[data-route="month"] .month-tool-note{
    font-size:15.7px!important;
    line-height:1.44!important;
  }
  html.chinese.v88 body .explore-page[data-route="month"] .month-audience-teasers p,
  html.chinese.v88 body .explore-page[data-route="month"] .month-view-stage p,
  html.chinese.v88 body .explore-page[data-route="month"] .month-tool-note{
    font-size:15.35px!important;
    line-height:1.58!important;
  }
  html.v88 body .explore-page[data-route="month"] .month-insight>p:not(.month-insight-meta),
  html.v88 body .explore-page[data-route="month"] .month-current-bridge p,
  html.v88 body .explore-page[data-route="month"] .month-insight-empty p{
    font-size:15.45px!important;
    line-height:1.44!important;
  }
  html.chinese.v88 body .explore-page[data-route="month"] .month-insight>p:not(.month-insight-meta),
  html.chinese.v88 body .explore-page[data-route="month"] .month-current-bridge p,
  html.chinese.v88 body .explore-page[data-route="month"] .month-insight-empty p{
    font-size:15.2px!important;
    line-height:1.58!important;
  }
  html.v88 body .explore-page[data-route="advisers"] .route-lead{font-size:16px!important;line-height:1.45!important}
  html.v88 body .explore-page[data-route="advisers"] .route-section p{font-size:15.7px!important;line-height:1.44!important}
  html.v88 body .explore-page[data-route="advisers"] .proof-list-v51 b{font-size:13.2px!important;white-space:nowrap!important}
  html.v88 body .explore-page[data-route="advisers"] .proof-list-v51 p{font-size:15.4px!important;line-height:1.42!important}
  html.v88 body .explore-page[data-route="advisers"] .proof-list-v51>div{grid-template-columns:164px minmax(0,1fr)!important}
  html.v88 body .explore-page[data-route="families"] .route-lead,
  html.v88 body .explore-page[data-route="families"] .family-editorial-copy p{font-size:16px!important;line-height:1.5!important}
  html.chinese.v88 body .explore-page[data-route="families"] .route-lead,
  html.chinese.v88 body .explore-page[data-route="families"] .family-editorial-copy p{font-size:15.6px!important;line-height:1.64!important}
  html.v88 body .explore-page[data-route="invitation"] .route-lead{font-size:16px!important;line-height:1.44!important}
  html.v88 body .explore-page[data-route="invitation"] .invitation-editorial-block p,
  html.v88 body .explore-page[data-route="invitation"] .invitation-editorial-conclusion p,
  html.v88 body .explore-page[data-route="invitation"] .invite-path p,
  html.v88 body .explore-page[data-route="invitation"] .invite-inline>p{font-size:15.7px!important;line-height:1.44!important}
  html.chinese.v88 body .explore-page[data-route="invitation"] .route-lead{font-size:15.7px!important;line-height:1.58!important}
  html.chinese.v88 body .explore-page[data-route="invitation"] .invitation-editorial-block p,
  html.chinese.v88 body .explore-page[data-route="invitation"] .invitation-editorial-conclusion p,
  html.chinese.v88 body .explore-page[data-route="invitation"] .invite-path p,
  html.chinese.v88 body .explore-page[data-route="invitation"] .invite-inline>p{font-size:15.35px!important;line-height:1.58!important}
}
@media (min-width:1101px) and (max-height:830px){
  html.v88 body .explore-page[data-route="month"] .month-audience-teasers p,
  html.v88 body .explore-page[data-route="month"] .month-view-stage p,
  html.v88 body .explore-page[data-route="month"] .month-tool-note{font-size:15.35px!important;line-height:1.35!important}
  html.v88 body .explore-page[data-route="advisers"] .route-section p{font-size:15.35px!important;line-height:1.35!important}
  html.v88 body .explore-page[data-route="advisers"] .proof-list-v51 p{font-size:15.1px!important;line-height:1.34!important}
  html.v88 body .explore-page[data-route="invitation"] .invitation-editorial-block p,
  html.v88 body .explore-page[data-route="invitation"] .invitation-editorial-conclusion p,
  html.v88 body .explore-page[data-route="invitation"] .invite-path p{font-size:15.35px!important;line-height:1.36!important}
}

/* Final fit calibration after the reading-floor increase. */
@media (min-width:901px){
  html.v88:not(.chinese) body .audience .audience-card[data-open] .card-title{
    font-size:clamp(18.8px,1.16vw,20.6px)!important;
    line-height:1.13!important;
    letter-spacing:-.026em!important;
    white-space:nowrap!important;
  }
  html.v88:not(.chinese) body .audience .audience-card[data-open] .card-caption{
    font-size:clamp(14.5px,.86vw,14.9px)!important;
    line-height:1.42!important;
  }
}
@media (min-width:1101px){
  html.v88 body .explore-page[data-route="invitation"] .route-copy{padding-top:14px!important;padding-bottom:10px!important}
  html.v88 body .explore-page[data-route="invitation"] .route-title{font-size:clamp(44px,3.05vw,52px)!important;line-height:.96!important}
  html.v88 body .explore-page[data-route="invitation"] .route-lead{margin-top:9px!important}
  html.v88 body .explore-page[data-route="invitation"] .invitation-editorial-grid{margin-top:9px!important}
  html.v88 body .explore-page[data-route="invitation"] .invitation-editorial-block{padding-top:9px!important;padding-bottom:9px!important}
  html.v88 body .explore-page[data-route="invitation"] .invitation-editorial-conclusion{margin-top:7px!important;padding-top:7px!important}
  html.v88 body .explore-page[data-route="advisers"] .proof-list-v51>div{padding-top:9px!important;padding-bottom:9px!important}
  html.v88 body .explore-page[data-route="advisers"] .aside-action-stack{margin-top:8px!important}
  html.v88 body .explore-page[data-route="advisers"] .support-link{min-height:42px!important;margin-top:0!important}
}
@media (min-width:1101px) and (max-height:830px){
  html.v88 body .explore-page[data-route="month"] .route-copy{padding-top:6px!important;padding-bottom:5px!important}
  html.v88 body .explore-page[data-route="month"] .route-aside{padding-top:5px!important;padding-bottom:5px!important}
  html.v88 body .explore-page[data-route="month"] .route-title{font-size:42px!important;line-height:.94!important}
  html.v88 body .explore-page[data-route="month"] .route-lead{margin-top:5px!important;line-height:1.35!important}
  html.v88 body .explore-page[data-route="month"] .month-audience-teasers{margin-top:6px!important;padding-top:5px!important}
  html.v88 body .explore-page[data-route="month"] .month-audience-teasers p{line-height:1.31!important}
  html.v88 body .explore-page[data-route="month"] .month-view-progression{margin-top:6px!important}
  html.v88 body .explore-page[data-route="month"] .month-view-stage{padding-top:5px!important;padding-bottom:5px!important}
  html.v88 body .explore-page[data-route="month"] .month-view-stage p{line-height:1.31!important}
  html.v88 body .explore-page[data-route="month"] .month-tool-note{margin-top:4px!important;line-height:1.3!important}
  html.v88 body .explore-page[data-route="month"] .month-current-bridge{margin-top:6px!important;padding-top:6px!important}

  html.v88 body .explore-page[data-route="advisers"] .route-copy,
  html.v88 body .explore-page[data-route="advisers"] .route-aside{padding-top:5px!important;padding-bottom:5px!important}
  html.v88 body .explore-page[data-route="advisers"] .route-title{font-size:42px!important;line-height:.95!important}
  html.v88 body .explore-page[data-route="advisers"] .route-lead{margin-top:5px!important;line-height:1.34!important}
  html.v88 body .explore-page[data-route="advisers"] .route-sections{margin-top:6px!important}
  html.v88 body .explore-page[data-route="advisers"] .route-section{padding-top:5px!important}
  html.v88 body .explore-page[data-route="advisers"] .route-section:nth-child(n+3){margin-top:3px!important;padding-top:5px!important}
  html.v88 body .explore-page[data-route="advisers"] .route-section p{line-height:1.31!important}
  html.v88 body .explore-page[data-route="advisers"] .proof-list-v51>div{padding-top:5px!important;padding-bottom:5px!important}
  html.v88 body .explore-page[data-route="advisers"] .support-link{min-height:36px!important}

  html.v88 body .explore-page[data-route="invitation"] .route-copy{padding-top:5px!important;padding-bottom:5px!important}
  html.v88 body .explore-page[data-route="invitation"] .route-title{font-size:42px!important;line-height:.94!important}
  html.v88 body .explore-page[data-route="invitation"] .route-lead{margin-top:5px!important;line-height:1.32!important}
  html.v88 body .explore-page[data-route="invitation"] .invitation-editorial-grid{margin-top:5px!important}
  html.v88 body .explore-page[data-route="invitation"] .invitation-editorial-block{padding-top:5px!important;padding-bottom:5px!important}
  html.v88 body .explore-page[data-route="invitation"] .invitation-editorial-block p,
  html.v88 body .explore-page[data-route="invitation"] .invitation-editorial-conclusion p{line-height:1.31!important}
  html.v88 body .explore-page[data-route="invitation"] .invitation-editorial-conclusion{margin-top:4px!important;padding-top:4px!important}
  html.v88 body .explore-page[data-route="invitation"] .invite-path{padding-top:5px!important}
  html.v88 body .explore-page[data-route="invitation"] .invite-path p{line-height:1.31!important}
}
@media (min-width:1101px) and (max-height:830px){
  html.v88 body .explore-page[data-route="month"] .calendar-head{padding-bottom:8px!important}
  html.v88 body .explore-page[data-route="month"] .month-deeper{margin-top:6px!important}
}

/* V7.9.1d final corrective lock
   Applies the latest approved lessons globally so the same issues do not
   recur through route-local regressions. */

/* Families lead: emphasis belongs to sentence position, not bold styling. */
.explore-page[data-route="families"] .route-lead strong{
  font-weight:400!important;
  color:inherit!important;
}

/* Invitation: remove the redundant double rule between the final editorial
   block and the conclusion band. */
.explore-page[data-route="invitation"] .invitation-editorial-grid .invitation-editorial-block:last-child{
  border-bottom:none!important;
}
.explore-page[data-route="invitation"] .invitation-editorial-conclusion{
  margin-top:0!important;
}

/* Advisers right rail: hold the module in the optical middle of the rail. */
.explore-page[data-route="advisers"] .route-aside{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
}
.explore-page[data-route="advisers"] .route-aside .support-module{
  width:min(100%,520px)!important;
  margin-inline:auto!important;
}

/* Month: no automatic numbers; keep all explanatory/supporting text above the
   agreed desktop floor and keep the three progression cards visually even. */
.explore-page[data-route="month"] .month-stage-index{
  display:none!important;
}
.explore-page[data-route="month"] .month-view-stage{
  align-items:start!important;
}
.explore-page[data-route="month"] .month-view-stage h3,
.explore-page[data-route="month"] .month-audience-teasers h3,
.explore-page[data-route="month"] .month-current-bridge h5{
  font-size:12.5px!important;
  line-height:1.3!important;
}
.explore-page[data-route="month"] .month-main-cta,
.explore-page[data-route="month"] .month-main-cta span,
.explore-page[data-route="month"] .month-current-bridge .support-link,
.explore-page[data-route="month"] .month-current-bridge .support-link span,
.explore-page[data-route="month"] .month-current-bridge button,
.explore-page[data-route="month"] .month-current-bridge button span{
  font-size:15.35px!important;
  line-height:1.35!important;
}
.explore-page[data-route="month"] .month-main-cta{
  margin-top:10px!important;
}
.explore-page[data-route="month"] .month-tool-note,
.explore-page[data-route="month"] .month-view-stage p,
.explore-page[data-route="month"] .month-audience-teasers p,
.explore-page[data-route="month"] .month-current-bridge p,
.explore-page[data-route="month"] .month-insight > p:not(.month-insight-meta),
.explore-page[data-route="month"] .month-insight-empty p{
  font-size:15.55px!important;
  line-height:1.44!important;
}
html.chinese .explore-page[data-route="month"] .month-tool-note,
html.chinese .explore-page[data-route="month"] .month-view-stage p,
html.chinese .explore-page[data-route="month"] .month-audience-teasers p,
html.chinese .explore-page[data-route="month"] .month-current-bridge p,
html.chinese .explore-page[data-route="month"] .month-insight > p:not(.month-insight-meta),
html.chinese .explore-page[data-route="month"] .month-insight-empty p{
  font-size:15.35px!important;
  line-height:1.60!important;
}

/* Overview/support body: enforce the same reading floor beneath the three
   opening columns. */
.explore-page[data-route="overview"] .route-section p,
.explore-page[data-route="overview"] .route-lead,
.explore-page[data-route="overview"] .route-prompt p{
  font-size:15.7px!important;
  line-height:1.46!important;
}
html.chinese .explore-page[data-route="overview"] .route-section p,
html.chinese .explore-page[data-route="overview"] .route-lead,
html.chinese .explore-page[data-route="overview"] .route-prompt p{
  font-size:15.35px!important;
  line-height:1.62!important;
}

/* Short desktop heights: preserve the floor by trimming space, not text. */
@media (min-width:1101px) and (max-height:830px){
  .explore-page[data-route="month"] .month-main-cta,
  .explore-page[data-route="month"] .month-main-cta span,
  .explore-page[data-route="month"] .month-current-bridge .support-link,
  .explore-page[data-route="month"] .month-current-bridge .support-link span,
  .explore-page[data-route="month"] .month-current-bridge button,
  .explore-page[data-route="month"] .month-current-bridge button span,
  .explore-page[data-route="month"] .month-tool-note,
  .explore-page[data-route="month"] .month-view-stage p,
  .explore-page[data-route="month"] .month-audience-teasers p,
  .explore-page[data-route="month"] .month-current-bridge p,
  .explore-page[data-route="month"] .month-insight > p:not(.month-insight-meta),
  .explore-page[data-route="month"] .month-insight-empty p,
  .explore-page[data-route="overview"] .route-section p,
  .explore-page[data-route="overview"] .route-lead,
  .explore-page[data-route="overview"] .route-prompt p,
  .explore-page[data-route="advisers"] .route-section p,
  .explore-page[data-route="advisers"] .proof-list-v51 p,
  .explore-page[data-route="invitation"] .invitation-editorial-block p,
  .explore-page[data-route="invitation"] .invitation-editorial-conclusion p,
  .explore-page[data-route="invitation"] .invite-path p{
    font-size:15.35px!important;
    line-height:1.38!important;
  }
  html.chinese .explore-page[data-route="month"] .month-main-cta,
  html.chinese .explore-page[data-route="month"] .month-main-cta span,
  html.chinese .explore-page[data-route="month"] .month-current-bridge .support-link,
  html.chinese .explore-page[data-route="month"] .month-current-bridge .support-link span,
  html.chinese .explore-page[data-route="month"] .month-current-bridge button,
  html.chinese .explore-page[data-route="month"] .month-current-bridge button span,
  html.chinese .explore-page[data-route="month"] .month-tool-note,
  html.chinese .explore-page[data-route="month"] .month-view-stage p,
  html.chinese .explore-page[data-route="month"] .month-audience-teasers p,
  html.chinese .explore-page[data-route="month"] .month-current-bridge p,
  html.chinese .explore-page[data-route="month"] .month-insight > p:not(.month-insight-meta),
  html.chinese .explore-page[data-route="month"] .month-insight-empty p,
  html.chinese .explore-page[data-route="overview"] .route-section p,
  html.chinese .explore-page[data-route="overview"] .route-lead,
  html.chinese .explore-page[data-route="overview"] .route-prompt p{
    font-size:15.1px!important;
    line-height:1.56!important;
  }
}

/* --- V7.9.1e final hard corrections ------------------------------------ */
/* Families: never emphasise part of the lead unexpectedly. */
.explore-page[data-route="families"] .route-lead strong,
.explore-page[data-route="families"] .route-lead b{
  font-weight:inherit!important;
}

/* Advisers: the right-hand module must sit in the visual middle of the rail. */
@media (min-width:1025px){
  .explore-page[data-route="advisers"] .route-aside{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    align-content:center!important;
    padding-top:0!important;
    padding-bottom:0!important;
  }
  .explore-page[data-route="advisers"] .route-aside .support-module{
    width:min(100%,520px)!important;
    margin:auto!important;
  }
}

/* Month view: use the same premium three-cell grammar as the audience row,
   remove the hidden index column squeeze, keep sentence case CTAs, and hold
   all supporting copy above the agreed desktop floor. */
.explore-page[data-route="month"] .month-view-progression{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  align-items:stretch!important;
  gap:0!important;
  margin-top:14px!important;
  border-top:1px solid var(--v51-line,#dce3df)!important;
  border-bottom:1px solid var(--v51-line,#dce3df)!important;
}
.explore-page[data-route="month"] .month-view-stage{
  display:block!important;
  min-width:0!important;
  padding:15px 18px 16px 0!important;
}
.explore-page[data-route="month"] .month-view-stage + .month-view-stage{
  border-left:1px solid var(--v51-line,#dce3df)!important;
  padding-left:18px!important;
}
.explore-page[data-route="month"] .month-view-stage > div{
  display:flex!important;
  flex-direction:column!important;
  min-height:100%!important;
}
.explore-page[data-route="month"] .month-stage-index{
  display:none!important;
}
.explore-page[data-route="month"] .month-view-stage h3,
.explore-page[data-route="month"] .month-audience-teasers h3,
.explore-page[data-route="month"] .month-current-bridge h5{
  margin:0 0 6px!important;
  font:650 12.5px/1.3 var(--sans)!important;
  color:#355b57!important;
  letter-spacing:.01em!important;
  text-transform:none!important;
}
.explore-page[data-route="month"] .month-view-stage p,
.explore-page[data-route="month"] .month-audience-teasers p,
.explore-page[data-route="month"] .month-tool-note,
.explore-page[data-route="month"] .month-current-bridge p,
.explore-page[data-route="month"] .month-insight > p:not(.month-insight-meta),
.explore-page[data-route="month"] .month-insight-empty p,
.explore-page[data-route="month"] .month-main-cta,
.explore-page[data-route="month"] .month-main-cta span,
.explore-page[data-route="month"] .month-current-bridge .support-link,
.explore-page[data-route="month"] .month-current-bridge .support-link span{
  font-size:15.55px!important;
  line-height:1.44!important;
  letter-spacing:0!important;
  text-transform:none!important;
}
html.chinese .explore-page[data-route="month"] .month-view-stage p,
html.chinese .explore-page[data-route="month"] .month-audience-teasers p,
html.chinese .explore-page[data-route="month"] .month-tool-note,
html.chinese .explore-page[data-route="month"] .month-current-bridge p,
html.chinese .explore-page[data-route="month"] .month-insight > p:not(.month-insight-meta),
html.chinese .explore-page[data-route="month"] .month-insight-empty p,
html.chinese .explore-page[data-route="month"] .month-main-cta,
html.chinese .explore-page[data-route="month"] .month-main-cta span,
html.chinese .explore-page[data-route="month"] .month-current-bridge .support-link,
html.chinese .explore-page[data-route="month"] .month-current-bridge .support-link span{
  font-size:15.35px!important;
  line-height:1.60!important;
}
.explore-page[data-route="month"] .month-main-cta{
  margin-top:auto!important;
  padding-top:10px!important;
  min-height:auto!important;
  gap:10px!important;
  border-bottom:1px solid #36505b!important;
}
.explore-page[data-route="month"] .month-main-cta svg{
  width:20px!important;
  height:20px!important;
}
.explore-page[data-route="month"] .month-current-bridge .support-link{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  width:100%!important;
  min-height:34px!important;
  margin-top:10px!important;
  padding:0 0 4px!important;
  border-top:0!important;
  border-bottom:1px solid #cfdad5!important;
  background:transparent!important;
  color:#385f58!important;
}
.explore-page[data-route="month"] .month-insight-meta{
  font-size:12.5px!important;
  line-height:1.35!important;
}

/* Invitation: keep the single-divider structure explicit. */
.explore-page[data-route="invitation"] .invitation-editorial-grid .invitation-editorial-block:last-child{
  border-bottom:none!important;
}
.explore-page[data-route="invitation"] .invitation-editorial-conclusion{
  margin-top:0!important;
}

/* Global body/supporting-text floor on desktop routes. */
@media (min-width:1025px){
  .explore-page .route-lead,
  .explore-page .route-section p,
  .explore-page .route-prompt p,
  .explore-page .family-editorial-copy p,
  .explore-page .family-editorial-closing,
  .explore-page .invitation-editorial-block p,
  .explore-page .invitation-editorial-conclusion p,
  .explore-page .route-aside .proof-list-v51 p,
  .explore-page .route-aside .aside-note-v51,
  .explore-page .route-aside .support-link,
  .explore-page .route-aside .support-link span{
    font-size:15.55px!important;
    line-height:1.44!important;
    letter-spacing:0!important;
    text-transform:none!important;
  }
  html.chinese .explore-page .route-lead,
  html.chinese .explore-page .route-section p,
  html.chinese .explore-page .route-prompt p,
  html.chinese .explore-page .family-editorial-copy p,
  html.chinese .explore-page .family-editorial-closing,
  html.chinese .explore-page .invitation-editorial-block p,
  html.chinese .explore-page .invitation-editorial-conclusion p,
  html.chinese .explore-page .route-aside .proof-list-v51 p,
  html.chinese .explore-page .route-aside .aside-note-v51,
  html.chinese .explore-page .route-aside .support-link,
  html.chinese .explore-page .route-aside .support-link span{
    font-size:15.35px!important;
    line-height:1.60!important;
    letter-spacing:0!important;
    text-transform:none!important;
  }
}

/* V7.9.1f final premium normalisation: month rail refinement + invitation divider cleanup */
.explore-page[data-route="month"] .month-calendar-wrap{
  gap:14px;
}
.explore-page[data-route="month"] .month-calendar-wrap .calendar-head p{
  font:700 12px/1.2 var(--sans)!important;
  letter-spacing:.08em!important;
  text-transform:uppercase!important;
  color:#355b57!important;
  margin:0 0 2px!important;
}
.explore-page[data-route="month"] .month-weekdays{
  margin-top:2px!important;
  gap:10px!important;
}
.explore-page[data-route="month"] .month-weekdays span{
  font:700 12.2px/1 var(--sans)!important;
  color:#6c8184!important;
}
.explore-page[data-route="month"] .month-calendar{
  gap:10px!important;
}
.explore-page[data-route="month"] .month-day,
.explore-page[data-route="month"] .month-day.has-event,
.explore-page[data-route="month"] .month-day.today{
  min-height:36px!important;
  border-radius:12px!important;
}
.explore-page[data-route="month"] .month-day > span,
.explore-page[data-route="month"] .month-day.has-event > span,
.explore-page[data-route="month"] .month-day.today > span{
  font:500 15.8px/1 var(--sans)!important;
  color:#40595d!important;
}
.explore-page[data-route="month"] .month-day.has-event{
  border:1px solid #d6e0db!important;
  background:#fbfcfa!important;
  box-shadow:none!important;
}
.explore-page[data-route="month"] .month-day.has-event[data-state="open"]{
  background:#f3f8f4!important;
  border-color:#c8d8d1!important;
}
.explore-page[data-route="month"] .month-day.selected,
.explore-page[data-route="month"] .month-day.today.selected,
.explore-page[data-route="month"] .month-day.has-event.selected,
.explore-page[data-route="month"] .month-day.today{
  border-color:#446d69!important;
}
.explore-page[data-route="month"] .month-insight-host{
  margin-top:4px!important;
}
.explore-page[data-route="month"] .month-insight,
.explore-page[data-route="month"] .month-insight-empty,
.explore-page[data-route="month"] .month-insight.locked{
  padding:16px 16px 14px!important;
  border:1px solid #d7e1dc!important;
  border-radius:14px!important;
  background:#fbfcfa!important;
}
.explore-page[data-route="month"] .month-insight-meta{
  font:700 11.9px/1.25 var(--sans)!important;
  letter-spacing:.08em!important;
  color:#9b7951!important;
  text-transform:uppercase!important;
}
.explore-page[data-route="month"] .month-insight h4,
.explore-page[data-route="month"] .month-insight-empty h4{
  margin:7px 0 8px!important;
  font:600 19px/1.33 var(--sans)!important;
  letter-spacing:0!important;
  color:#173843!important;
}
.explore-page[data-route="month"] .month-insight > p:not(.month-insight-meta),
.explore-page[data-route="month"] .month-insight-empty p{
  font:400 15.3px/1.5 var(--sans)!important;
  color:#4f676c!important;
}
.explore-page[data-route="month"] .month-current-bridge{
  margin-top:12px!important;
  padding-top:11px!important;
  border-top:1px solid #dde5e0!important;
}
.explore-page[data-route="month"] .month-current-bridge h5{
  margin:0 0 6px!important;
  font:600 14.7px/1.35 var(--sans)!important;
  letter-spacing:0!important;
  text-transform:none!important;
  color:#355b57!important;
}
.explore-page[data-route="month"] .month-current-bridge p{
  margin:0!important;
  font:400 15.15px/1.48 var(--sans)!important;
  color:#4f676c!important;
}
.explore-page[data-route="month"] .month-deeper,
.explore-page[data-route="month"] .month-deeper-link,
.explore-page[data-route="month"] .month-deeper span,
.explore-page[data-route="month"] .month-deeper-link span{
  font:600 15px/1.4 var(--sans)!important;
  letter-spacing:0!important;
  text-transform:none!important;
}
.explore-page[data-route="month"] .month-deeper,
.explore-page[data-route="month"] .month-deeper-link{
  display:inline-flex!important;
  align-items:center!important;
  gap:8px!important;
  width:auto!important;
  min-height:auto!important;
  margin-top:10px!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  color:#173843!important;
  box-shadow:none!important;
}
.explore-page[data-route="month"] .month-deeper i,
.explore-page[data-route="month"] .month-deeper-link i{
  font-style:normal!important;
  font-size:16px!important;
}
.explore-page[data-route="invitation"] .invitation-editorial-conclusion{
  border-top:0!important;
  margin-top:0!important;
  padding-top:12px!important;
}
.explore-page[data-route="invitation"] .invitation-editorial-grid .invitation-editorial-block:last-child{
  border-bottom:0!important;
}

/* V7.9.1g FINAL calendar interaction lock
   Only TODAY and an explicitly SELECTED non-today date may be boxed.
   Every other meaningful date is communicated by its colour-coded dot only. */
.explore-page[data-route="month"] .month-day,
.explore-page[data-route="month"] .month-day.has-event,
.explore-page[data-route="month"] .month-day.has-event[data-state="open"],
.explore-page[data-route="month"] .month-day.has-event[data-state="preview"],
.explore-page[data-route="month"] .month-day.next-important:not(.today){
  border:1px solid transparent!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  color:#40595d!important;
  font-weight:500!important;
  opacity:1!important;
  transform:none!important;
}
.explore-page[data-route="month"] .month-day.has-event::after{
  display:block!important;
  content:''!important;
  position:absolute!important;
  top:5px!important;
  right:5px!important;
  bottom:auto!important;
  width:7px!important;
  height:7px!important;
  border-radius:50%!important;
  background:var(--event-col,var(--v514-coral))!important;
  box-shadow:0 0 0 2px #fbfcf9!important;
}
.explore-page[data-route="month"] .month-day.today,
.explore-page[data-route="month"] .month-day.today.selected{
  border:2px solid #446d69!important;
  border-radius:11px!important;
  background:#f4f8f5!important;
  box-shadow:inset 0 0 0 1px rgba(68,109,105,.07)!important;
  color:#173843!important;
  font-weight:800!important;
}
.explore-page[data-route="month"] .month-day.selected:not(.today){
  border:1px solid #b8c2bf!important;
  border-radius:11px!important;
  background:#eef1f0!important;
  box-shadow:none!important;
  color:#263f44!important;
  font-weight:600!important;
}
.explore-page[data-route="month"] button.month-day:not(.today):not(.selected):hover{
  border-color:transparent!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  color:#173843!important;
  transform:none!important;
}
.explore-page[data-route="month"] .month-day > span,
.explore-page[data-route="month"] .month-day.has-event > span,
.explore-page[data-route="month"] .month-day.selected > span,
.explore-page[data-route="month"] .month-day.today > span{
  width:auto!important;
  height:auto!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  transform:none!important;
  font-size:15.8px!important;
  line-height:1!important;
  font-weight:inherit!important;
  color:inherit!important;
}

/* The bridge heading is editorially equal to the selected-date title.
   Do not allow it to drop into caption/label typography. */
.explore-page[data-route="month"] .month-current-bridge h5{
  margin:0 0 8px!important;
  font:600 19px/1.33 var(--sans)!important;
  letter-spacing:0!important;
  text-transform:none!important;
  color:#173843!important;
}
html.chinese .explore-page[data-route="month"] .month-current-bridge h5{
  font-size:18.5px!important;
  line-height:1.48!important;
}

/* V7.9.1o exact title parity lock.
   The selected-date title and the bridge heading are the same editorial role
   and therefore share the exact same class and typographic rule. */
.explore-page[data-route="month"] .month-insight .month-insight-title,
.explore-page[data-route="month"] .month-current-bridge .month-insight-title{
  margin:7px 0 8px!important;
  font-family:var(--sans)!important;
  font-size:19px!important;
  font-style:normal!important;
  font-weight:600!important;
  line-height:1.33!important;
  letter-spacing:0!important;
  text-transform:none!important;
  color:#173843!important;
}
.explore-page[data-route="month"] .month-current-bridge .month-insight-title{
  margin-top:0!important;
}
html.chinese .explore-page[data-route="month"] .month-insight .month-insight-title,
html.chinese .explore-page[data-route="month"] .month-current-bridge .month-insight-title{
  font-size:18.5px!important;
  line-height:1.48!important;
}

/* V7.9.1o month insight heading lock.
   Current, bridge, past, future and default insight titles share the exact
   typography of the established passed-state title. */
.explore-page[data-route="month"] .month-insight-heading,
.explore-page[data-route="month"] .month-insight.locked .month-insight-heading,
.explore-page[data-route="month"] .month-current-bridge .month-insight-heading,
.explore-page[data-route="month"] .month-insight-empty .month-insight-heading{
  margin:0 0 7px!important;
  font-family:var(--sans)!important;
  font-size:17px!important;
  font-style:normal!important;
  font-weight:600!important;
  line-height:1.22!important;
  letter-spacing:0!important;
  text-transform:none!important;
  color:#173843!important;
}
.explore-page[data-route="month"] .month-current-bridge .month-insight-heading{
  margin-top:0!important;
}
html.chinese .explore-page[data-route="month"] .month-insight-heading,
html.chinese .explore-page[data-route="month"] .month-insight.locked .month-insight-heading,
html.chinese .explore-page[data-route="month"] .month-current-bridge .month-insight-heading,
html.chinese .explore-page[data-route="month"] .month-insight-empty .month-insight-heading{
  font-size:17px!important;
  line-height:1.48!important;
}

/* V7.9.1o month hierarchy and neutral-state lock.
   Calendar insight headings intentionally use the exact typography of the
   "Personal month view" heading in the three-column explanation. */
.explore-page[data-route="month"] .month-insight-heading,
.explore-page[data-route="month"] .month-insight.locked .month-insight-heading,
.explore-page[data-route="month"] .month-current-bridge .month-insight-heading,
.explore-page[data-route="month"] .month-insight-empty .month-insight-heading{
  margin:0 0 6px!important;
  font:650 12.5px/1.3 var(--sans)!important;
  letter-spacing:.01em!important;
  text-transform:none!important;
  color:#355b57!important;
}
html.chinese .explore-page[data-route="month"] .month-insight-heading,
html.chinese .explore-page[data-route="month"] .month-insight.locked .month-insight-heading,
html.chinese .explore-page[data-route="month"] .month-current-bridge .month-insight-heading,
html.chinese .explore-page[data-route="month"] .month-insight-empty .month-insight-heading{
  font:650 12.5px/1.3 var(--sans)!important;
}

/* The month title already appears in the selected navigation tab. The right
   rail therefore starts with the artwork rather than repeating month metadata. */
.explore-page[data-route="month"] .support-month-v51 .month-meta{
  display:none!important;
}
.explore-page[data-route="month"] .month-art-compact{
  width:100%!important;
  height:60px!important;
  max-height:60px!important;
  margin:0 0 10px!important;
  overflow:visible!important;
}
.explore-page[data-route="month"] .month-art-compact .month-art,
.explore-page[data-route="month"] .support-month-v51 .month-art-compact .month-art{
  width:200px!important;
  max-width:62%!important;
  height:60px!important;
  max-height:60px!important;
  margin:0!important;
  object-fit:contain!important;
  object-position:left center!important;
}

/* Selected current-month label changes from green treatment to coral while
   keeping the surrounding navigation geometry unchanged. */
.route-nav button[data-route="month"][aria-current="page"] [data-ui="navMonth"] .v511-nav-month-accent,
.route-nav button[data-route="month"][aria-current="page"] .v511-nav-month-accent{
  background:none!important;
  color:var(--v511-coral,#c9806f)!important;
  -webkit-text-fill-color:var(--v511-coral,#c9806f)!important;
  -webkit-background-clip:initial!important;
  background-clip:initial!important;
  animation:none!important;
}

/* V7.9.1o final month-state and artwork lock. */
.explore-page[data-route="month"] .month-insight > .month-insight-heading,
.explore-page[data-route="month"] .month-current-bridge > .month-insight-heading,
.explore-page[data-route="month"] .month-insight-empty > .month-insight-heading,
.explore-page[data-route="month"] .month-insight.locked > .month-insight-heading{
  margin:0 0 6px!important;
  font-family:var(--sans)!important;
  font-size:12.5px!important;
  font-weight:650!important;
  font-style:normal!important;
  line-height:1.3!important;
  letter-spacing:.01em!important;
  text-transform:none!important;
  color:#355b57!important;
}

/* Show the complete monthly artwork at its natural aspect ratio. */
.explore-page[data-route="month"] .month-art-compact,
.explore-page[data-route="month"] .support-month-v51 .month-art-compact{
  width:260px!important;
  max-width:78%!important;
  height:auto!important;
  max-height:none!important;
  margin:0 0 12px!important;
  overflow:visible!important;
}
.explore-page[data-route="month"] .month-art-compact .month-art,
.explore-page[data-route="month"] .support-month-v51 .month-art-compact .month-art{
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  height:auto!important;
  max-height:none!important;
  margin:0!important;
  object-fit:contain!important;
  object-position:left center!important;
}


/* V7.9.1o month artwork transparency lock. */
.explore-page[data-route="month"] .month-art-wrap,
.explore-page[data-route="month"] .month-art-compact,
.explore-page[data-route="month"] .month-art{
  background:transparent!important;
}


/* V7.9.1o true transparent month-art render lock.
   PNG/WebP alpha is not enough if a legacy box-shadow outlines the rectangular
   <img> canvas. Monthly artwork must render as artwork only, never as a card. */
.explore-page[data-route="month"] .month-art-wrap,
.explore-page[data-route="month"] .month-art-compact,
.explore-page[data-route="month"] .support-month-v51 .month-art-wrap,
.explore-page[data-route="month"] .support-month-v51 .month-art-compact{
  background:none!important;
  background-color:transparent!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  filter:none!important;
}
.explore-page[data-route="month"] .month-art,
.explore-page[data-route="month"] .support-month-v51 .month-art{
  background:none!important;
  background-color:transparent!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  filter:none!important;
  outline:0!important;
}
.explore-page[data-route="month"] .month-art-wrap::before,
.explore-page[data-route="month"] .month-art-wrap::after,
.explore-page[data-route="month"] .month-art-compact::before,
.explore-page[data-route="month"] .month-art-compact::after{
  content:none!important;
  display:none!important;
}
