/* WVS subtle polish, 2026-10-10. Additive, reversible, no image/copy changes.
   Existing fonts, colors, templates, illustration framing and approved menus are retained. */
body[data-wvs-subtle] :where(a,button,summary,input,select,textarea):focus-visible{
  outline:2px solid currentColor;outline-offset:4px;
}
body[data-wvs-subtle] main :where(a,button,summary,input,select,textarea){touch-action:manipulation;scroll-margin-block:24px}
body[data-wvs-subtle] main :where(h1,h2,h3){text-wrap:balance}
body[data-wvs-subtle] main :where(p,blockquote){text-wrap:pretty;overflow-wrap:break-word}
/* Closer title-to-content rhythm: 3px off each desktop side of the existing divider. */
@media(min-width:901px){
  body[data-wvs-subtle] main.rework .rw-heading{padding-bottom:20px;margin-bottom:22px}
  body[data-wvs-subtle] main.economy .ec-heading{margin-bottom:22px}
  body[data-wvs-subtle] main.fullfilter .ff-directory-head{margin-bottom:20px}
  body[data-wvs-subtle] main.fullfilter .ff-faculty-grid{row-gap:12px}
  /* Portrait-led bios keep the original gap to preserve exact photo framing. */
  body[data-wvs-subtle] main.fullfilter .ff-testimonial-lead{column-gap:24px}
  body[data-wvs-subtle] main.fullfilter .ff-bio-continuation p+p{margin-top:14px}
}
body[data-wvs-subtle] main.fullfilter .ff-related{gap:18px;margin-top:20px;padding-top:14px}
body[data-wvs-subtle] main .rw-next{gap:24px}
body[data-wvs-subtle] main .rw-next nav{gap:20px;flex-wrap:wrap}
body[data-wvs-subtle] main .rw-link{max-width:100%;text-wrap:balance}
/* The current resource topic is recognizable without changing its label or destination. */
body[data-wvs-subtle] .library-index a[aria-current=page]{
  border-left-color:#344e86;background:#e8edf6;font-weight:600;
}
/* Native imported pages: compact only wholly empty paragraph spacers, never text/media. */
body[data-wvs-subtle] main.native-page p[data-wvs-empty-space]{
  margin-block:0 6px!important;line-height:6px!important;min-height:0!important;
  height:6px!important;overflow:hidden;
}
/* Private Voice: retain all descriptions, progress and source images. Eight pixels only. */
@media(min-width:901px){
  body[data-wvs-subtle] #wvs-page.rw-voice .voice-levels h2{min-height:64px}
  body[data-wvs-subtle] #wvs-page.wvs02g .goal-list summary{min-height:88px;padding-block:20px}
}
body[data-wvs-subtle] #wvs-page.wvs02g .goal-list summary{cursor:pointer}
body[data-wvs-subtle] #wvs-page.wvs02g .goal-list summary:focus-visible{outline-offset:2px}
body[data-wvs-subtle] main .ff-more summary,
body[data-wvs-subtle] main .ec-detail summary{cursor:pointer}
body[data-wvs-subtle] main .ff-more summary>span,
body[data-wvs-subtle] main .ec-detail summary>span:last-child{transition:transform .2s ease}
/* Phone-only control affordances, not enlarged marketing cards. */
@media(max-width:700px){
  body[data-wvs-subtle] main .rw-next nav{gap:14px;flex-wrap:wrap}
  body[data-wvs-subtle] main .rw-link,
  body[data-wvs-subtle] main .ff-related a,
  body[data-wvs-subtle] main .library-index a{min-height:40px;align-items:center}
  body[data-wvs-subtle] main .library-index a{display:inline-flex}
  body[data-wvs-subtle] main .faq-filters button{min-height:40px}
  body[data-wvs-subtle] main .faq-search input{min-height:40px;font-size:16px}
  body[data-wvs-subtle] main .faq-search{white-space:normal}
  body[data-wvs-subtle] main .ff-enlarge,
  body[data-wvs-subtle] .ff-photo-dialog button{min-width:40px;min-height:40px}
  body[data-wvs-subtle] main .ff-related{flex-wrap:wrap;column-gap:18px;row-gap:4px}
}
/* Preserve the site's existing reduced-motion behavior for the tiny added cue only. */
@media(prefers-reduced-motion:reduce){
  body[data-wvs-subtle] main .ff-more summary>span,
  body[data-wvs-subtle] main .ec-detail summary>span:last-child{transition:none}
}
