/* ==========================================================================
   premium.css — visual refinement pass for chrisanz.com
   Loaded AFTER all generated design-system CSS so equal-specificity rules win.
   Conservative override layer: typography, spacing, cards, buttons, header/nav
   and section rhythm, built on the existing design tokens. Does not alter
   copy, routes, forms, analytics, config, data, or build logic.
   ========================================================================== */

:root{
  --premium-ease: cubic-bezier(.2,.7,.2,1);
  --premium-ring: 0 0 0 2px var(--gray-100), 0 0 0 4px var(--accent-500);
}

/* ---- Base: smoothing, selection, focus, scrollbar ---- */
html{ -webkit-text-size-adjust:100%; }
body{
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
}

::selection{ background:var(--primary-500); color:var(--gray-50); }
::-moz-selection{ background:var(--primary-500); color:var(--gray-50); }

a:focus-visible,
a[data-wrap-link-href]:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible{
  outline:none;
  box-shadow:var(--premium-ring);
  border-radius:var(--radius-xs);
}

/* ---- Typography: readable line-height without touching the rem scale ---- */
p,.p{ line-height:1.6; }
.blog-post p,.blog-post li{ line-height:1.72; }

h1,.h1{ letter-spacing:.005em; }
h2,.h2{ letter-spacing:.005em; margin-bottom:var(--rhythm-md); }
h3,.h3{ letter-spacing:.005em; }

@media (max-width:37.4375em){
  .display-responsive{ font-size:1.85rem; }
}

/* ---- Header / nav ---- */
.site-header .inner{
  border:0.5px solid var(--gray-300);
  box-shadow:var(--shadow-elevation-2);
  backdrop-filter:saturate(140%) blur(6px);
}
@media (min-width:62.5em){
  .site-header .header-nav ul{ gap:30px; }
  .site-header .header-nav ul li a{
    position:relative;
    font-size:var(--font-size-text-md);
    letter-spacing:.02em;
    color:var(--primary-800);
    padding-bottom:3px;
  }
  .site-header .header-nav ul li a::after{
    content:"";
    position:absolute; left:0; right:0; bottom:0;
    height:2px; background:var(--primary-600);
    transform:scaleX(0); transform-origin:left center;
    transition:transform var(--transition-md) var(--premium-ease);
  }
  .site-header .header-nav ul li a:hover,
  .site-header .header-nav ul li a:focus-visible{ color:var(--primary-900); }
  .site-header .header-nav ul li a:hover::after,
  .site-header .header-nav ul li a:focus-visible::after{ transform:scaleX(1); }
}
.site-header .menu-btn .open-icon,
.site-header .menu-btn .close-icon{
  width:28px; height:28px;
}
.site-header .menu-nav ul{ gap:14px; }
.site-header .menu-nav ul li a{ letter-spacing:.01em; }
/* Hide hamburger on desktop — the inline logo-size-override style forces
   display:inline-flex, which leaks the button onto desktop. Override it. */
@media (min-width:62.5em){
  .site-header .menu-btn{ display:none !important; }
}

/* ---- Hero: refine CTA + subtitle (do not touch the fanned card stack) ---- */
.hero .content .subtitle{
  letter-spacing:.04em;
  color:var(--primary-700);
}
@media (min-width:37.5em){
  .hero .subtitle{ letter-spacing:.05em; }
}

/* ---- Unified CTA button look (hero, footer, contact, 404, thanks) ---- */
/* Base (lowest specificity) — only renders where nothing more specific applies. */
.cta:not(.inner){
  font-family:var(--font-display);
  display:inline-block;
  font-weight:700;
  line-height:1;
  font-size:1rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  text-decoration:none;
  padding:14px 30px;
  border-radius:var(--radius-md);
  border:1px solid var(--accent-400);
  background-color:var(--accent-400);
  color:var(--accent-900);
  box-shadow:0 8px 24px rgba(5,121,204,.22);
  transition:background-color var(--transition-md) var(--premium-ease),
             border-color var(--transition-md) var(--premium-ease),
             transform var(--transition-md) var(--premium-ease),
             box-shadow var(--transition-md) var(--premium-ease);
}
@media (hover:hover){
  .cta:not(.inner):hover{
    background-color:var(--accent-500);
    border-color:var(--accent-500);
    transform:translateY(-2px);
    box-shadow:0 12px 30px rgba(2,150,255,.32);
  }
}
.cta:not(.inner):active{ transform:translateY(0); }

/* The hero CTA keeps its slide-in animation; just refresh its surface. */
.hero .content .cta{
  font-size:1rem;
  font-weight:700;
  letter-spacing:.06em;
  padding:14px 30px;
  border:1px solid var(--accent-400);
  border-radius:var(--radius-md);
  background-color:var(--accent-400);
  color:var(--accent-900);
  box-shadow:0 8px 24px rgba(5,121,204,.22);
  transition:background-color var(--transition-md) var(--premium-ease),
             border-color var(--transition-md) var(--premium-ease),
             transform var(--transition-md) var(--premium-ease),
             box-shadow var(--transition-md) var(--premium-ease);
}
@media (hover:hover){
  .hero .cta:hover{
    background-color:var(--accent-500);
    border-color:var(--accent-500);
    transform:translateY(-2px);
    box-shadow:0 12px 30px rgba(2,150,255,.32);
  }
}

/* ---- Intro section ---- */
@media (min-width:37.5em){
  section.intro{ padding-top:var(--rhythm-xl); padding-bottom:var(--rhythm-xl); }
}
section.intro .inner .content{ max-width:34rem; }
section.intro .inner .content > h2{
  color:var(--primary-700);
  letter-spacing:.01em;
  margin-bottom:var(--rhythm-sm);
}
section.intro .inner .content > p{
  font-size:var(--font-size-text-lg);
  line-height:1.72;
  color:var(--gray-800);
  text-wrap:pretty;
}
/* headshot stays a floating transparent portrait — no frame */

/* ---- Cards (grid: portfolio / blog list / featured projects) ---- */
.card{
  border:1px solid var(--gray-300);
  border-radius:var(--radius-md);
  background:linear-gradient(180deg,var(--gray-200) 0%, var(--gray-100) 175%);
  box-shadow:var(--shadow-elevation-2);
  overflow:hidden;
  transition:transform var(--transition-md) var(--premium-ease),
             box-shadow var(--transition-md) var(--premium-ease),
             border-color var(--transition-md) var(--premium-ease);
}
.card .card-image{ box-shadow:none; }
.card .text-content{ padding:16px; gap:10px; }
@container (min-width:21.25rem){ .card .text-content{ padding:18px; gap:12px; } }
@container (min-width:31.25rem){ .card .text-content{ padding:22px; gap:14px; } }

.card .title,.card .title a,.card .title a:visited{ letter-spacing:0; line-height:1.25; }
.card .description{ color:var(--gray-700); line-height:1.55; }
.card .metas{ padding-top:8px; margin-top:4px; border-top:1px solid var(--gray-300); }
.card .metas .meta{ color:var(--gray-600); }

/* hover lift for grid cards only (the hero stack uses absolute positioning) */
.card-list .card[data-wrap-link]:hover,
.projects .card[data-wrap-link]:hover{
  transform:translateY(-4px);
  border-color:var(--primary-600);
  box-shadow:0 18px 40px rgba(0,0,0,.42);
}
.card[data-wrap-link] .title a:hover{ color:var(--primary-900); }

/* ---- Section rhythm & headings ---- */
.projects .inner,
.blog-posts.sm .inner{ gap:28px; }
.projects .inner > header,
.blog-posts.sm .inner > header{ margin-bottom:8px; }
.projects .inner > header h2,
.blog-posts.sm .inner > header h2,
.toolbox > h2{ letter-spacing:.01em; color:var(--primary-700); }
.projects .project-list{ gap:var(--gutter); }

/* "More …" links as refined underlined pills */
.more-link{
  font-family:var(--font-text);
  font-size:var(--font-size-text-md);
  letter-spacing:.04em;
  text-transform:uppercase;
  color:var(--primary-700) !important;
  text-decoration:none;
  border-bottom:2px solid transparent;
  padding-bottom:2px;
  transition:color var(--transition-md) var(--premium-ease),
             border-color var(--transition-md) var(--premium-ease);
}
.more-link:hover{ color:var(--primary-900) !important; border-color:var(--primary-600); }

/* ---- Toolbox ---- */
.toolbox{ padding:var(--rhythm-xl) var(--gutter); max-width:var(--body-max-width); margin-left:auto; margin-right:auto; }
.skill-finder .controls{ gap:12px; }
.skill-finder .search-input input,
.skill-finder .category-dropdown select{
  border-radius:var(--radius-sm);
  border:1px solid var(--gray-300);
  background-color:var(--gray-100);
  box-shadow:none;
}
.skill-finder .search-input input:focus,
.skill-finder .category-dropdown select:focus{
  outline:none;
  border-color:var(--accent-500);
  box-shadow:0 0 0 3px rgba(2,150,255,.18);
}

/* ---- Footer CTA band ---- */
.site-footer .footer-cta{ gap:24px; }
.site-footer .footer-cta .title{ letter-spacing:.01em; color:var(--gray-100); }
.site-footer .footer-cta .description{ color:var(--gray-100); line-height:1.6; }
.site-footer .footer-cta .button{
  font-size:1rem;
  font-weight:700;
  letter-spacing:.06em;
  padding:14px 30px;
  border-radius:var(--radius-md);
  border:1px solid var(--accent-400);
  box-shadow:0 8px 24px rgba(5,121,204,.22);
  transition:background-color var(--transition-md) var(--premium-ease),
             border-color var(--transition-md) var(--premium-ease),
             transform var(--transition-md) var(--premium-ease),
             box-shadow var(--transition-md) var(--premium-ease);
}
@media (hover:hover){
  .site-footer .footer-cta .button:hover{
    transform:translateY(-2px);
    box-shadow:0 12px 30px rgba(2,150,255,.3);
  }
}

/* footer inner + social + nav */
.site-footer > .inner{ border:0.5px solid var(--gray-300); box-shadow:var(--shadow-elevation-2); }
.site-footer .social-links{ gap:12px; }
.site-footer .social-links .social-link a{
  transition:background-color var(--transition-md) var(--premium-ease),
             color var(--transition-md) var(--premium-ease);
}
.site-footer .social-links .social-link a:hover{
  background-color:var(--primary-700);
  color:var(--gray-100);
}
.site-footer .footer-nav .nav-column{ gap:8px; }
.site-footer .footer-nav a{ color:var(--primary-900); transition:color var(--transition-md) var(--premium-ease); }
.site-footer .footer-nav a:hover{ color:var(--primary-700); }
.site-footer .attributions{ color:var(--gray-700); }

/* ---- Contact / newsletter forms ---- */
.form-outer{ max-width:42rem; margin:0 auto; }
.form{ display:flex; flex-direction:column; gap:var(--rhythm-md); }
.form .field{ display:flex; flex-direction:column; gap:6px; }
.form .field > label{
  font-size:var(--font-size-text-md);
  letter-spacing:.02em;
  color:var(--primary-800);
  display:flex; flex-direction:column; gap:6px;
}
.form .field input,
.form .field textarea{
  font-family:var(--font-text);
  font-size:var(--font-size-text-md);
  color:var(--primary-900);
  background:var(--gray-100);
  border:1px solid var(--gray-300);
  border-radius:var(--radius-sm);
  padding:12px 14px;
  transition:border-color var(--transition-md) var(--premium-ease),
             box-shadow var(--transition-md) var(--premium-ease);
}
.form .field input:focus,
.form .field textarea:focus{
  outline:none;
  border-color:var(--accent-500);
  box-shadow:0 0 0 3px rgba(2,150,255,.18);
}
.form .field textarea{ min-height:8rem; resize:vertical; }
.form .field button{
  font-family:var(--font-display);
  font-size:1rem; font-weight:700; letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--accent-900);
  background:var(--accent-400);
  border:1px solid var(--accent-400);
  border-radius:var(--radius-md);
  padding:14px 30px;
  cursor:pointer;
  box-shadow:0 8px 24px rgba(5,121,204,.22);
  transition:background-color var(--transition-md) var(--premium-ease),
             border-color var(--transition-md) var(--premium-ease),
             transform var(--transition-md) var(--premium-ease),
             box-shadow var(--transition-md) var(--premium-ease);
}
@media (hover:hover){
  .form .field button:hover{
    background:var(--accent-500); border-color:var(--accent-500);
    transform:translateY(-2px);
    box-shadow:0 12px 30px rgba(2,150,255,.3);
  }
}

.newsletter-form{ display:flex; flex-direction:column; gap:var(--rhythm-md); }
.newsletter-form .field{ display:flex; flex-direction:column; gap:6px; }
.newsletter-form .field > label{ color:var(--primary-800); font-size:var(--font-size-text-md); display:flex; flex-direction:column; gap:6px; }
.newsletter-form .field input{
  font-family:var(--font-text); font-size:var(--font-size-text-md);
  color:var(--primary-900); background:var(--gray-100);
  border:1px solid var(--gray-300); border-radius:var(--radius-sm);
  padding:12px 14px;
}
.newsletter-form .field input:focus{
  outline:none; border-color:var(--accent-500); box-shadow:0 0 0 3px rgba(2,150,255,.18);
}
.newsletter-form .field button{
  font-family:var(--font-display);
  font-size:1rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
  color:var(--accent-900); background:var(--accent-400);
  border:1px solid var(--accent-400); border-radius:var(--radius-md);
  padding:14px 30px; cursor:pointer;
  box-shadow:0 8px 24px rgba(5,121,204,.22);
  transition:background-color var(--transition-md) var(--premium-ease),
             border-color var(--transition-md) var(--premium-ease),
             transform var(--transition-md) var(--premium-ease),
             box-shadow var(--transition-md) var(--premium-ease);
}
@media (hover:hover){
  .newsletter-form .field button:hover{
    background:var(--accent-500); border-color:var(--accent-500);
    transform:translateY(-2px); box-shadow:0 12px 30px rgba(2,150,255,.3);
  }
}

/* ---- Generic page content (résumé, blog list, taxonomy, etc.) ---- */
.page-content > header{ margin-bottom:var(--rhythm-lg); }
.page-content > header h1{ color:var(--primary-700); }
.taxonomy-nav{ margin-top:var(--rhythm-sm); }
.taxonomy-nav a{ color:var(--primary-700); }
.taxonomy-nav a[aria-current=page]{ color:var(--primary-900); border-bottom:2px solid var(--primary-600); padding-bottom:2px; }
.terms-list{ list-style:none; padding:0; display:flex; flex-direction:column; gap:8px; }
.terms-list a{ color:var(--primary-700); }
.terms-list a:hover{ color:var(--primary-900); }

/* ---- Project detail (refine the page's inline styles) ---- */
.project-detail{ padding-top:var(--rhythm-lg); }
.pd-hero-img{ border-radius:var(--radius-lg); }
.pd-cta{
  display:inline-block;
  margin-top:var(--rhythm-lg);
  padding:12px 26px;
  border-radius:var(--radius-md);
  border:1px solid var(--primary-600);
  background:rgba(255,148,0,.1);
  color:var(--primary-800) !important;
  text-decoration:none;
  font-weight:700; letter-spacing:.04em;
  transition:background-color var(--transition-md) var(--premium-ease),
             transform var(--transition-md) var(--premium-ease);
}
.pd-cta:hover{ background:rgba(255,148,0,.16); transform:translateY(-2px); }

/* ---- Blog post ---- */
.post-header .title{ letter-spacing:.01em; }
.post-header .description{ color:var(--gray-700); line-height:1.6; }
.blog-post{ font-size:var(--font-size-text-md); line-height:1.72; color:var(--gray-800); }
.blog-post h2,.blog-post h3{ color:var(--primary-800); }
.blog-post a{ color:var(--accent-600); text-decoration:underline; text-underline-offset:2px; }
.blog-post a:hover{ color:var(--accent-500); }
.blog-post img{ border-radius:var(--radius-md); }
.blog-post blockquote{
  border-left:3px solid var(--primary-600);
  margin:var(--rhythm-md) 0;
  padding:4px 0 4px var(--rhythm-md);
  color:var(--gray-700);
  font-style:italic;
}
.blog-post pre{ border:1px solid var(--gray-300); border-radius:var(--radius-md); background:var(--gray-50); }
.blog-post code{ font-family:var(--font-mono); }

/* ---- Résumé page ---- */
.introduction p{ font-size:var(--font-size-text-lg); line-height:1.72; color:var(--gray-800); }
.career-highlights-list{ list-style:none; padding:0; display:flex; flex-direction:column; gap:10px; }
.career-highlights-list li{ line-height:1.6; }
.experience h2,.skills-section h2,.education-section h2,.hightlights h2{ color:var(--primary-700); }
.exp-org{ color:var(--primary-800); }

/* ---- Reduced motion: keep transitions gentle ---- */
@media (prefers-reduced-motion:reduce){
  *{ transition-duration:.01ms !important; animation-duration:.01ms !important; }
  .cta:not(.inner):hover,.hero .cta:hover,.site-footer .footer-cta .button:hover,
  .card-list .card[data-wrap-link]:hover,.projects .card[data-wrap-link]:hover{ transform:none; }
}

/* ==========================================================================
   ROUND 2 additions — nav active, mobile drawer, résumé, reading time,
   related posts, search, policy pages
   ========================================================================== */

/* ---- Active nav indicator (desktop) ---- */
@media (min-width:62.5em){
  .site-header .header-nav ul li a.is-active{
    color:var(--primary-900);
  }
  .site-header .header-nav ul li a.is-active::after{
    transform:scaleX(1);
  }
}

/* ---- Mobile drawer: staggered fade-in of menu items ---- */
.site-header .menu-nav ul li{
  opacity:0;
  transform:translateX(12px);
  transition:opacity var(--transition-md) var(--premium-ease),
             transform var(--transition-md) var(--premium-ease);
}
.site-header.menu-open .menu-nav ul li{
  opacity:1;
  transform:none;
}
.site-header.menu-open .menu-nav ul li:nth-child(1){ transition-delay:.04s; }
.site-header.menu-open .menu-nav ul li:nth-child(2){ transition-delay:.08s; }
.site-header.menu-open .menu-nav ul li:nth-child(3){ transition-delay:.12s; }
.site-header.menu-open .menu-nav ul li:nth-child(4){ transition-delay:.16s; }
.site-header.menu-open .menu-nav ul li:nth-child(5){ transition-delay:.20s; }
.site-header.menu-open .menu-nav ul li:nth-child(6){ transition-delay:.24s; }
/* active state in mobile menu */
.site-header .menu-nav ul li a.is-active{
  color:var(--primary-900);
  border-left:3px solid var(--primary-600);
  padding-left:10px;
}

/* ---- Reading time (blog post header) ---- */
.post-header .reading-time{
  margin-left:8px;
  color:var(--gray-600);
  font-size:var(--font-size-text-sm);
  font-weight:var(--font-weight-text-sm);
  white-space:nowrap;
}

/* ---- Related posts section ---- */
.related-posts{
  max-width:var(--body-max-width-with-gutter);
  margin:var(--rhythm-xl) auto 0;
  padding:0 var(--gutter);
}
.related-posts .related-inner{
  max-width:var(--body-max-width);
  margin:0 auto;
}
.related-posts .related-title{
  font-size:var(--font-size-h3);
  color:var(--primary-700);
  margin-bottom:var(--rhythm-md);
  letter-spacing:.01em;
}
.related-posts .card-list{
  display:grid;
  grid-template-columns:1fr;
  gap:var(--gutter);
}
@media (min-width:40em){
  .related-posts .card-list{ grid-template-columns:repeat(2,1fr); }
}
@media (min-width:62.5em){
  .related-posts .card-list{ grid-template-columns:repeat(3,1fr); }
}
.related-posts .card .title,
.related-posts .card .title a{
  font-size:var(--font-size-h4);
}
.related-posts .card .description{
  font-size:var(--font-size-text-md);
  -webkit-line-clamp:2;
  line-clamp:2;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  overflow:hidden;
}

/* ---- Résumé page (was unstyled — only .resume-exp had inline styles) ---- */
.introduction{
  max-width:var(--editorial-max-width);
  margin:0 0 var(--rhythm-xl);
  padding:var(--rhythm-lg);
  background:linear-gradient(180deg,var(--gray-200) 0%, var(--gray-100) 175%);
  border:1px solid var(--gray-300);
  border-radius:var(--radius-md);
}
.introduction p{ margin:0; }
.hightlights,.experience,.education-section,.skills-section{
  max-width:var(--editorial-max-width);
  margin:0 0 var(--rhythm-xl);
}
.hightlights h2,.experience h2,.education-section h2,.skills-section h2{
  color:var(--primary-700);
  letter-spacing:.01em;
  margin-bottom:var(--rhythm-md);
  padding-bottom:var(--rhythm-xs);
  border-bottom:1px solid var(--gray-300);
}
.career-highlights-list{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:var(--rhythm-sm);
}
.career-highlights-list li{
  line-height:1.6;
  color:var(--gray-800);
  padding-left:var(--rhythm-md);
  position:relative;
}
.career-highlights-list li::before{
  content:"";
  position:absolute;
  left:0; top:.6em;
  width:8px; height:8px;
  border-radius:50%;
  background:var(--primary-600);
}
.career-highlights-list .title{ color:var(--primary-800); font-weight:700; }
.experience .exp-org{ color:var(--primary-800); margin-bottom:2px; }
.experience .exp-meta{ color:var(--gray-600); font-size:var(--font-size-text-sm); margin-bottom:var(--rhythm-xs); }
.experience ul{ color:var(--gray-700); }
.experience ul li{ line-height:1.6; margin:6px 0; }
.skills-section h3{
  font-size:var(--font-size-h5);
  text-transform:uppercase;
  letter-spacing:.08em;
  color:var(--primary-700);
  margin:var(--rhythm-md) 0 var(--rhythm-xs);
}
.skills-section .skill-line{
  color:var(--gray-700);
  line-height:1.7;
  margin:0 0 var(--rhythm-sm);
}

/* ---- Search page — native-ize Pagefind UI ---- */
.search-page{ max-width:60rem; margin:0 auto; padding:var(--rhythm-xl) var(--gutter); min-height:50vh; }
.search-page .pagefind-ui{
  --pagefind-ui-primary:var(--primary-600);
  --pagefind-ui-text:var(--gray-800);
  --pagefind-ui-background:var(--gray-100);
  --pagefind-ui-border:var(--gray-300);
  --pagefind-ui-tag:var(--gray-200);
  --pagefind-ui-border-radius:var(--radius-md);
  --pagefind-ui-form-border-radius:var(--radius-md);
  --pagefind-ui-input-background:var(--gray-100);
}
.search-page .pagefind-ui__search-input{
  background:var(--gray-100) !important;
  color:var(--primary-900) !important;
  border:1px solid var(--gray-300) !important;
  border-radius:var(--radius-md) !important;
  font-family:var(--font-text) !important;
  box-shadow:var(--shadow-elevation-2);
}
.search-page .pagefind-ui__search-input:focus{
  outline:none;
  border-color:var(--accent-500) !important;
  box-shadow:0 0 0 3px rgba(2,150,255,.18) !important;
}
.search-page .pagefind-ui__search-clear{
  background:var(--gray-200) !important;
  color:var(--gray-700) !important;
  border:1px solid var(--gray-300) !important;
}
.search-page .pagefind-ui__result{
  border-top:1px solid var(--gray-300) !important;
  padding:var(--rhythm-md) 0 !important;
}
.search-page .pagefind-ui__result-title{
  font-family:var(--font-heading) !important;
  font-size:var(--font-size-h4) !important;
}
.search-page .pagefind-ui__result-link{
  color:var(--primary-700) !important;
  text-decoration:none !important;
}
.search-page .pagefind-ui__result-link:hover{ color:var(--primary-900) !important; }
.search-page .pagefind-ui__result-excerpt{
  color:var(--gray-700) !important;
  line-height:1.6 !important;
}
.search-page .pagefind-ui__result-tags{
  color:var(--gray-600) !important;
}

/* ---- Policy pages (rewritten static HTML) ---- */
.policy-page{ max-width:44rem; margin:0 auto; padding:var(--rhythm-md) 0 var(--rhythm-xl); }
.policy-page h1{ color:var(--primary-700); margin-bottom:var(--rhythm-xs); }
.policy-effective{
  color:var(--gray-600);
  font-size:var(--font-size-text-sm);
  letter-spacing:.02em;
  margin-bottom:var(--rhythm-lg);
}
.policy-page h2{
  font-size:var(--font-size-h4);
  color:var(--primary-800);
  margin-top:var(--rhythm-lg);
  margin-bottom:var(--rhythm-sm);
  letter-spacing:.01em;
}
.policy-page p,.policy-page ul{ line-height:1.72; color:var(--gray-800); }
.policy-page ul{ padding-left:var(--rhythm-lg); }
.policy-page li{ margin:6px 0; }
.policy-page a{ color:var(--accent-600); text-decoration:underline; text-underline-offset:2px; }
.policy-page a:hover{ color:var(--accent-500); }


/* ---- Toolbox: legibility lift (icons + grid kept, no structural change) ---- */
.skill-finder ul.skill-list{
  --item-width:92px;
  --item-height:88px;
  --row-gap:14px;
}
.skill-finder ul.skill-list li.skill a{
  font-size:var(--font-size-text-sm);
  line-height:1.3;
}
.skill-finder ul.skill-list li.skill a .skill-name{
  width:auto;
}
