/* Resume-specific rules. Shared navigation, palette and themes live in site.css. */
.resume-page-heading { padding: 2rem clamp(1rem, 3vw, 3rem) 1.5rem; border-bottom: 1px solid var(--site-border); }
.resume-page-heading .eyebrow { margin-bottom: .4rem; }
.resume-page-heading h1 { font-size: clamp(1.8rem, 3vw, 2.5rem); margin-bottom: .5rem !important; }
.resume-page-heading .resume-jump-links { gap: .25rem 1.25rem; }
.resume-page .resume-container { padding: clamp(1rem, 3vw, 2.5rem); max-width: 1280px; }
.resume-page .resume-wrapper { margin: 0; padding: clamp(1rem, 3vw, 2.5rem); border-radius: .6rem; background: var(--site-bg); }
.resume-header-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 1.5rem; align-items: start; }
.resume-page .resume-name { font-size: clamp(1.8rem, 3vw, 2.8rem); line-height: 1.15; letter-spacing: -.035em; text-transform: none; margin: 0 0 .6rem; }
.resume-page .resume-tagline { max-width: 40ch; font-size: 1.05rem; line-height: 1.6; font-weight: 500; }
.resume-page .resume-contact { margin: 0; padding-left: 1.25rem; font-size: .85rem; line-height: 1.7; font-style: normal; border-left: 1px solid var(--site-border); }
.resume-contact li { margin-bottom: .35rem !important; }
.resume-summary-grid { display: grid; grid-template-columns: 88px minmax(0, 1fr); gap: 1.5rem; align-items: start; }
.resume-page .resume-profile-image { width: 88px; height: 88px; }
.resume-page .resume-intro { margin: 1.75rem 0 2rem; padding: 1.5rem 0; border-block: 1px solid var(--site-border); font-size: .95rem; }
.resume-summary-heading { font-size: .8rem; letter-spacing: .07em; text-transform: uppercase; margin-bottom: .75rem; color: var(--site-accent); }
.resume-intro p { margin-bottom: .75rem; }
.resume-actions { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1.25rem; }
.resume-columns { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2rem; }
.resume-page .resume-main { padding: 0 !important; width: auto; }
.resume-page .resume-aside { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.75rem; padding: 1.75rem 0 0; border: 0; border-top: 1px solid var(--site-border); width: auto; }
.resume-main-section + .resume-main-section { margin-top: 2.5rem; }
.resume-page .resume-section-heading { font-size: 1rem; line-height: 1.4; letter-spacing: .07em; text-transform: uppercase; margin: 0 0 1.25rem; }
.resume-entry { padding: 0 0 1.75rem 1.25rem; margin-left: .1rem; border-left: 2px solid var(--site-border); position: relative; }
.resume-entry::before { content: ""; position: absolute; top: .4rem; left: -.35rem; width: .6rem; height: .6rem; border-radius: 50%; background: var(--site-accent); }
.resume-entry:last-child { padding-bottom: 0; }
.resume-entry-heading { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .25rem 1rem; margin-bottom: .75rem; }
.resume-page .resume-main .item-title { font-size: 1.05rem; line-height: 1.5; margin: 0; }
.resume-organization { grid-row: 2; font-weight: 500; color: var(--site-text); font-size: .9rem; margin: 0; }
.resume-dates { grid-column: 2; grid-row: 1 / span 2; color: var(--site-muted); font-size: .8rem; text-align: right; margin: .15rem 0 0; max-width: 20ch; }
.resume-review-note { font-style: italic; }
.resume-role + .resume-role { margin-top: 1.25rem; }
.resume-role h5 { font-size: .95rem; line-height: 1.5; margin-bottom: .5rem; }
.resume-role-dates { display: block; color: var(--site-muted); font-size: .8rem; font-weight: 400; }
.resume-page .resume-main .item-content { font-size: .93rem; line-height: 1.75; }
.resume-page .resume-list { padding-left: 1.2rem; }
.resume-list li + li { margin-top: .45rem; }
.resume-technologies-label { margin: 1rem 0 .4rem; font-size: .75rem; color: var(--site-muted); font-weight: 600; }
.resume-technologies { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: .3rem .65rem; margin: 0; }
.resume-technologies li { max-width: 100%; font-size: .75rem; line-height: 1.6; color: var(--site-muted); overflow-wrap: anywhere; }
.resume-technologies li:not(:last-child)::after { content: " ·"; }
.resume-side-section { min-width: 0; }
.resume-page .resume-aside .resume-side-section .resume-section-heading { margin-bottom: 1rem; }
.resume-page .resume-aside .resume-credential-name { font-size: .95rem; color: var(--site-heading); font-weight: 600; margin-bottom: .5rem; }
.resume-credential-description { font-size: .85rem; color: var(--site-muted); }
.resume-page .certification-badge { text-align: left !important; }
.resume-page .certification-badge img { width: 120px; }
.resume-skill-group + .resume-skill-group { margin-top: 1rem; }
.resume-skill-group h4, .resume-side-section h4 { font-size: .85rem; line-height: 1.5; margin-bottom: .35rem; }
.resume-skill-group p, .resume-side-section li { font-size: .85rem; line-height: 1.7; }
.resume-skill-group p { margin: 0; }
.resume-strengths { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .2rem .6rem; }
.resume-strengths li { margin-bottom: 0 !important; }
.resume-strengths li:not(:last-child)::after { content: " ·"; }
.resume-page .resume-interests-list { margin-bottom: 1.25rem; }
@media (min-width: 1280px) {
  .resume-columns { grid-template-columns: minmax(0, 1fr) minmax(14rem, .38fr); }
  .resume-page .resume-aside { display: block; border-top: 0; border-left: 1px solid var(--site-border); padding: 0 0 0 1.5rem; }
  .resume-side-section + .resume-side-section { margin-top: 2rem; }
}
@media (max-width: 767.98px) {
  .resume-header-grid { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
  .resume-page .resume-contact { padding: 1rem 0 0; border-left: 0; border-top: 1px solid var(--site-border); }
  .resume-summary-grid { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
  .resume-page .resume-profile-image { display: none; }
  .resume-entry-heading { grid-template-columns: minmax(0, 1fr); }
  .resume-dates { grid-column: 1; grid-row: 3; text-align: left; max-width: none; }
}
@media (max-width: 575.98px) {
  .resume-page .resume-aside { grid-template-columns: minmax(0, 1fr); }
  .resume-page .resume-wrapper { border: 0; padding: .25rem; }
  .resume-page .resume-container { padding: 1.25rem 1rem; }
  .resume-actions { flex-direction: column; }
}
@media print {
  .resume-page-heading, .resume-actions, .resume-profile-image { display: none !important; }
  .resume-page .resume-container, .resume-page .resume-wrapper { max-width: none; padding: 0 !important; margin: 0; border: 0; }
  .resume-page .resume-columns, .resume-page .resume-aside { display: block; }
  .resume-page .resume-header-grid { display: block; }
  .resume-page .resume-contact { margin-top: .5rem; padding: 0; border: 0; }
  .resume-contact ul { display: flex; flex-wrap: wrap; gap: .25rem 1rem; }
  .resume-summary-grid { display: block; }
  .resume-page .resume-intro { margin: 1rem 0; padding: .75rem 0; }
  .resume-page .resume-main, .resume-page .resume-aside { padding: 0 !important; border: 0; }
  .resume-page .resume-aside { margin-top: 1.5rem; }
  .resume-page .resume-entry { break-inside: auto; }
  .resume-entry-heading, .resume-role h5 { break-inside: avoid; break-after: avoid; }
  .resume-role, .resume-list li, .resume-side-section { break-inside: avoid; }
  .resume-side-section + .resume-side-section { margin-top: 1.25rem; }
  .resume-page .resume-interests-list { columns: 2; }
  .resume-technologies { display: block; }
  .resume-technologies li { display: inline; }
  .resume-entry { padding-bottom: 1.25rem; }
  p, li { orphans: 3; widows: 3; }
}
