/* Nathan MacPherson Bio */
/* Bio-only tokens (mockup :root; not in approved-homepage.css) */
.nathan-macpherson-bio-page {
  --uk-red: #c8102e;
  --uk-navy: #012169;
  --oc-gold: #8b6914;
  --oc-gold-light: #fef9e7;
  --oc-gold-border: #d4a017;
  --navy-950: #060e1c;
}
.nathan-macpherson-bio-page .inline-link {
  color: var(--navy-700);
  font-weight: 600;
  border-bottom: 1px solid var(--navy-100);
  transition: color var(--transition);
}
.nathan-macpherson-bio-page .inline-link:hover {
  color: var(--color-accent);
}

/* ═══ BREADCRUMB ═══ */
.breadcrumb-bar{background:var(--color-surface);border-bottom:1px solid var(--color-divider);padding-block:var(--space-3)}
.breadcrumb{display:flex;align-items:center;gap:var(--space-2);list-style:none;flex-wrap:wrap}
.breadcrumb li{font-size:var(--text-xs);color:var(--color-text-muted)}
.breadcrumb a{color:var(--color-text-muted);transition:color var(--transition)}
.breadcrumb a:hover{color:var(--color-text)}
.breadcrumb [aria-current="page"]{color:var(--color-text);font-weight:600}

/* ═══ BIO HERO ═══ */
.bio-hero{background:var(--color-bg);border-bottom:1px solid var(--color-divider);padding-block:clamp(var(--space-10),6vw,var(--space-20))}
.bio-hero-inner{display:grid;grid-template-columns:300px 1fr;gap:clamp(var(--space-10),6vw,var(--space-20));align-items:start}
@media(max-width:900px){.bio-hero-inner{grid-template-columns:1fr}}

/* Photo column */
.bio-photo-col{display:flex;flex-direction:column;gap:var(--space-5)}
.bio-photo-frame{display:flex;flex-direction:column;gap:var(--space-4)}
.bio-photo-placeholder{width:100%;aspect-ratio:3/4;background:linear-gradient(160deg,var(--navy-100),var(--color-surface-2));border-radius:var(--radius-xl);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);border:1px dashed var(--color-border)}
.bio-headshot{width:100%;aspect-ratio:3/4;object-fit:cover;object-position:center top;border-radius:var(--radius-xl);display:block}
.photo-placeholder-text{font-size:var(--text-xs);font-style:italic;color:var(--color-text-muted);text-align:center;line-height:1.8}

/* Admission badges */
.admission-badges{display:flex;flex-direction:column;gap:var(--space-2)}
.badge{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-divider)}
.badge-flag{font-size:1.4rem;line-height:1;flex-shrink:0}
.badge-icon{width:32px;height:32px;border-radius:var(--radius-md);background:var(--navy-800);color:rgba(255,255,255,.8);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.badge-text{display:flex;flex-direction:column;gap:1px}
.badge-label{font-size:var(--text-xs);color:var(--color-text-faint);text-transform:uppercase;letter-spacing:.08em;font-weight:600}
.badge-value{font-size:var(--text-sm);font-weight:700;color:var(--navy-800)}

/* Identity column */
.bio-identity-col{display:flex;flex-direction:column;gap:var(--space-6)}
.bio-eyebrow{font-size:var(--text-xs);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--color-accent)}
.bio-name{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:700;color:var(--navy-800);line-height:1.05}
.bio-designation{font-size:var(--text-sm);color:var(--color-text-muted);margin-top:calc(-1 * var(--space-4))}

/* England & Wales callout — the centrepiece */
.ew-callout{background:var(--uk-navy);border-radius:var(--radius-xl);padding:var(--space-5) var(--space-6);display:flex;align-items:flex-start;gap:var(--space-4);border-left:5px solid var(--uk-red)}
.ew-callout-flag{flex-shrink:0;margin-top:2px;border-radius:4px;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,.3)}
.ew-callout-body{display:flex;flex-direction:column;gap:var(--space-2)}
.ew-callout-title{font-family:var(--font-display);font-size:var(--text-base);font-weight:700;color:#fff;line-height:1.3}
.ew-callout-desc{font-size:var(--text-sm);color:rgba(255,255,255,.72);line-height:1.7;max-width:100%}

/* Quick credentials strip */
.quick-creds{display:flex;align-items:center;background:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-divider);overflow:hidden;flex-wrap:wrap}
.quick-cred{display:flex;flex-direction:column;align-items:center;padding:var(--space-4) var(--space-5);gap:var(--space-1);text-align:center}
.qc-num{font-family:var(--font-display);font-size:var(--text-xl);font-weight:700;color:var(--navy-800);line-height:1}
.qc-label{font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}
.qc-divider{width:1px;height:52px;background:var(--color-divider);flex-shrink:0}
.bio-hero-actions{display:flex;flex-wrap:wrap;gap:var(--space-4)}

/* ═══ PAGE LAYOUT ═══ */
.page-layout{padding-block:clamp(var(--space-12),6vw,var(--space-20))}
.page-layout-inner{display:grid;grid-template-columns:1fr 300px;gap:clamp(var(--space-10),5vw,var(--space-16));align-items:start}
@media(max-width:1024px){.page-layout-inner{grid-template-columns:1fr}}
.page-main{display:flex;flex-direction:column;gap:clamp(var(--space-12),5vw,var(--space-20))}
.content-section{display:flex;flex-direction:column;gap:var(--space-5)}
.content-h2{font-family:var(--font-display);font-size:var(--text-xl);font-weight:700;color:var(--navy-800);padding-bottom:var(--space-3);border-bottom:2px solid var(--color-divider)}
.content-section>p{font-size:var(--text-base);color:var(--color-text-muted);line-height:1.8}

/* Client range */
.client-range{background:var(--color-surface);border-radius:var(--radius-xl);padding:var(--space-5) var(--space-6)}
.client-range-title{font-size:var(--text-xs);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:var(--space-4)}
.client-tags{display:flex;flex-wrap:wrap;gap:var(--space-2)}
.client-tag{font-size:var(--text-xs);font-weight:600;color:var(--navy-700);background:var(--navy-50);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);border:1px solid var(--navy-100);white-space:nowrap}

/* Career timeline */
.career-timeline{display:flex;flex-direction:column;gap:0}
.timeline-item{display:flex;gap:var(--space-6);padding-bottom:clamp(var(--space-8),4vw,var(--space-12))}
.timeline-item-last{padding-bottom:0}
.timeline-marker{display:flex;flex-direction:column;align-items:center;flex-shrink:0;width:20px}
.timeline-dot{width:14px;height:14px;border-radius:50%;background:var(--color-border);border:2px solid var(--color-bg);box-shadow:0 0 0 2px var(--color-border);flex-shrink:0;margin-top:4px}
.timeline-dot-highlight{background:var(--navy-800);box-shadow:0 0 0 3px var(--navy-100)}
.timeline-dot-now{background:var(--color-accent);box-shadow:0 0 0 3px var(--crimson-100,#fde8ec)}
.timeline-line{width:2px;background:var(--color-divider);flex:1;margin-top:var(--space-2)}
.timeline-content{display:flex;flex-direction:column;gap:var(--space-3);padding-top:2px;flex:1}
.timeline-period{font-size:var(--text-xs);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-faint)}
.timeline-title{font-family:var(--font-display);font-size:var(--text-lg);font-weight:700;color:var(--navy-800)}
.timeline-content>p{font-size:var(--text-sm);color:var(--color-text-muted);line-height:1.8;max-width:100%}
.timeline-institutions{display:flex;flex-wrap:wrap;gap:var(--space-2)}
.timeline-institutions span{font-size:var(--text-xs);color:var(--color-text-muted);background:var(--color-surface);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);border:1px solid var(--color-divider)}

/* Freshfields work detail */
.freshfields-work{display:flex;flex-direction:column;gap:var(--space-4);border-left:3px solid var(--navy-100);padding-left:var(--space-5)}
.fw-item{display:flex;flex-direction:column;gap:var(--space-1)}
.fw-item-title{font-size:var(--text-sm);font-weight:700;color:var(--navy-800)}
.fw-item p{font-size:var(--text-sm);color:var(--color-text-muted);line-height:1.75;max-width:100%}

/* E&W inline mini badge */
.ew-mini-badge{display:inline-flex;align-items:center;gap:var(--space-3);background:var(--uk-navy);border-radius:var(--radius-md);padding:var(--space-2) var(--space-4);color:rgba(255,255,255,.85);font-size:var(--text-xs);font-weight:600;margin-top:var(--space-2)}
.ew-mini-badge svg{border-radius:2px;box-shadow:0 1px 4px rgba(0,0,0,.3)}

/* Idaho callout */
.idaho-callout{border-radius:var(--radius-xl);overflow:hidden;margin-top:var(--space-2)}
.idaho-callout-placeholder{padding:var(--space-6);background:linear-gradient(135deg,var(--navy-100),var(--color-surface-2));font-size:var(--text-xs);font-style:italic;color:var(--color-text-muted);line-height:1.7;border:1px dashed var(--color-border);border-radius:var(--radius-xl)}

/* Notable matters */
.notable-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-4)}
@media(max-width:640px){.notable-grid{grid-template-columns:1fr}}
.notable-item{display:flex;align-items:flex-start;gap:var(--space-4);padding:var(--space-5);background:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-divider)}
.notable-icon{width:40px;height:40px;border-radius:var(--radius-md);background:var(--navy-800);color:rgba(255,255,255,.8);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.notable-body{display:flex;flex-direction:column;gap:var(--space-1)}
.notable-title{font-family:var(--font-display);font-size:var(--text-sm);font-weight:700;color:var(--navy-800);line-height:1.3}
.notable-item p{font-size:var(--text-xs);color:var(--color-text-muted);line-height:1.65;max-width:100%}

/* Language block */
.language-block{display:flex;flex-wrap:wrap;gap:var(--space-3)}
.lang-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-5);border-radius:var(--radius-lg);border:1px solid var(--color-divider)}
.fluent{background:var(--navy-50);border-color:var(--navy-100)}
.conversant{background:var(--color-surface)}
.working{background:var(--color-bg)}
.lang-flag{font-size:1.4rem;line-height:1}
.lang-info{display:flex;flex-direction:column;gap:1px}
.lang-name{font-size:var(--text-sm);font-weight:700;color:var(--navy-800)}
.lang-level{font-size:var(--text-xs);color:var(--color-text-muted)}

/* ═══ GENERATIONAL LEGACY TIMELINE ═══ */
.legacy-section-bio{background:var(--color-surface);border-radius:var(--radius-xl);padding:clamp(var(--space-8),5vw,var(--space-12));display:flex;flex-direction:column;gap:var(--space-6);border:1px solid var(--color-divider)}
.legacy-gen-timeline{display:flex;flex-direction:column;gap:0}
.gen-block{display:grid;grid-template-columns:160px 1fr;gap:var(--space-8);align-items:start;padding-block:var(--space-6)}
@media(max-width:640px){.gen-block{grid-template-columns:1fr}}
.gen-current{background:rgba(27,42,74,.03);border-radius:var(--radius-xl);padding:var(--space-6);margin-inline:calc(-1 * var(--space-3));border:1px solid var(--navy-100)}

/* Gen photo slots */
.gen-photo-slot{position:relative;display:flex;flex-direction:column;align-items:center;gap:var(--space-2)}
.gen-photo-placeholder{width:140px;height:180px;background:linear-gradient(160deg,var(--color-surface-2),var(--navy-100));border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;text-align:center;font-size:0.6rem;font-style:italic;color:var(--color-text-muted);padding:var(--space-3);line-height:1.6;border:1px dashed var(--color-border)}
.current-gen-placeholder{background:linear-gradient(160deg,var(--navy-100),#d0d9f0)}
.gen-year{font-family:var(--font-display);font-size:var(--text-sm);font-weight:700;color:var(--color-text-muted);text-align:center}
.gen-year-current{color:var(--navy-800)}

/* Gen info */
.gen-info{display:flex;flex-direction:column;gap:var(--space-3)}
.gen-label{font-size:var(--text-xs);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-faint)}
.gen-name{font-family:var(--font-display);font-size:var(--text-xl);font-weight:700;color:var(--navy-800);line-height:1.1}
.gen-bio{font-size:var(--text-sm);color:var(--color-text-muted);line-height:1.8;max-width:100%}
.gen-credential{font-size:var(--text-xs);color:var(--color-text-faint);letter-spacing:.03em}
.gen-bio-link{font-size:var(--text-xs);font-weight:600;color:var(--navy-700);display:inline-block;margin-top:var(--space-1)}
.gen-bio-link:hover{color:var(--color-accent)}

/* Role badges */
.gen-role-badge{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:700;letter-spacing:.04em;width:fit-content}
.of-counsel-badge{background:var(--oc-gold-light);color:var(--oc-gold);border:1px solid var(--oc-gold-border)}
.lead-attorney-badge{background:var(--navy-800);color:#fff}
.paralegal-badge{background:var(--color-surface);color:var(--color-text-muted);border:1px solid var(--color-divider)}

/* Gen connector */
.gen-connector{display:flex;align-items:center;gap:var(--space-4);padding-block:var(--space-2)}
.gen-connector-line{flex:1;height:1px;background:var(--color-divider)}
.gen-connector-label{font-size:var(--text-xs);color:var(--color-text-faint);white-space:nowrap;font-style:italic}

/* Scott block */
.scott-block{background:var(--color-bg);border-radius:var(--radius-xl);border:1px solid var(--color-divider);padding:var(--space-6);margin-top:var(--space-4)}
.scott-block-title{font-family:var(--font-display);font-size:var(--text-base);font-weight:700;color:var(--navy-800);margin-bottom:var(--space-4)}
.scott-block-inner{display:grid;grid-template-columns:100px 1fr;gap:var(--space-6);align-items:start}
@media(max-width:480px){.scott-block-inner{grid-template-columns:1fr}}
.scott-photo-placeholder{width:100px;height:130px;background:var(--color-surface);border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;text-align:center;font-size:0.6rem;font-style:italic;color:var(--color-text-muted);padding:var(--space-2);line-height:1.6;border:1px dashed var(--color-border)}
.scott-info{display:flex;flex-direction:column;gap:var(--space-3)}
.scott-role-badge{display:inline-flex;padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:700;background:var(--color-surface);color:var(--color-text-muted);border:1px solid var(--color-divider);width:fit-content}
.scott-info p{font-size:var(--text-sm);color:var(--color-text-muted);line-height:1.8;max-width:100%}
.scott-credential{font-size:var(--text-xs);color:var(--color-text-faint)}

/* Admissions section */
.admissions-section{}
.admissions-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-6)}
@media(max-width:768px){.admissions-grid{grid-template-columns:1fr}}
.admission-group{display:flex;flex-direction:column;gap:var(--space-3)}
.admission-group-title{font-family:var(--font-body);font-size:var(--text-xs);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-muted);padding-bottom:var(--space-2);border-bottom:2px solid var(--color-divider)}
.admission-group ul{list-style:none;display:flex;flex-direction:column;gap:var(--space-2)}
.admission-group li{font-size:var(--text-sm);color:var(--color-text-muted);padding-left:var(--space-4);position:relative;max-width:100%}
.admission-group li::before{content:'·';position:absolute;left:0;color:var(--navy-700);font-weight:700}

/* Media callout */
.media-callout{display:flex;align-items:flex-start;gap:var(--space-4);background:var(--navy-50);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5);border-left:3px solid var(--navy-300,var(--navy-100))}
.media-callout-icon{color:var(--navy-700);flex-shrink:0;margin-top:2px}
.media-callout p{font-size:var(--text-sm);color:var(--color-text-muted);line-height:1.7;max-width:100%}

/* ═══ SIDEBAR ═══ */
.page-sidebar{display:flex;flex-direction:column}
.sidebar-sticky{position:sticky;top:88px;display:flex;flex-direction:column;gap:var(--space-6)}
.sidebar-contact-card{background:var(--navy-800);border-radius:var(--radius-xl);padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-4)}
.sidebar-contact-header{display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.5)}
.sidebar-contact-header svg{color:rgba(255,255,255,.5);flex-shrink:0}
.sidebar-contact-body{font-size:var(--text-sm);color:rgba(255,255,255,.65);line-height:1.7;max-width:100%}
.sidebar-cta-btn{width:100%;justify-content:center}
.sidebar-divider{height:1px;background:rgba(255,255,255,.1)}
.sidebar-phone-link{display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-base);font-weight:700;color:#fff;padding:var(--space-3) 0}
.sidebar-response{font-size:var(--text-xs);color:rgba(255,255,255,.35);line-height:1.6;max-width:100%}

.sidebar-practices{background:var(--color-surface);border-radius:var(--radius-xl);padding:var(--space-5);border:1px solid var(--color-divider)}
.sidebar-section-title{font-size:var(--text-xs);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:var(--space-4)}
.practice-links{display:flex;flex-direction:column;gap:var(--space-2)}
.practice-link{display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-sm);font-weight:600;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);transition:background var(--transition)}
.practice-link:hover{background:var(--color-surface-2)}
.criminal-link{color:var(--criminal-color)}.civil-link{color:var(--civil-color)}.comp-link{color:var(--comp-color)}
.practice-link-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}

.sidebar-credentials-block{background:var(--color-surface);border-radius:var(--radius-xl);padding:var(--space-5);border:1px solid var(--color-divider)}
.sidebar-creds-list{list-style:none;display:flex;flex-direction:column;gap:var(--space-2)}
.sidebar-creds-list li{font-size:var(--text-xs);color:var(--color-text-muted);padding-left:var(--space-3);position:relative;max-width:100%}
.sidebar-creds-list li::before{content:'·';position:absolute;left:0;color:var(--navy-700);font-weight:700}
.sidebar-creds-list strong{color:var(--uk-navy);font-weight:700}

.sidebar-langs{background:var(--color-surface);border-radius:var(--radius-xl);padding:var(--space-5);border:1px solid var(--color-divider)}
.sidebar-lang-list{list-style:none;display:flex;flex-direction:column;gap:var(--space-2)}
.sidebar-lang-list li{display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-xs);color:var(--color-text-muted)}
.lang-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.fluent-dot{background:var(--navy-800)}.conversant-dot{background:var(--navy-100)}.working-dot{background:var(--color-divider)}

.sidebar-related{background:var(--color-surface);border-radius:var(--radius-xl);padding:var(--space-5);border:1px solid var(--color-divider)}
.sidebar-related-title{font-size:var(--text-xs);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:var(--space-4)}
.sidebar-related ul{list-style:none;display:flex;flex-direction:column;gap:0}
.sidebar-related li{border-bottom:1px solid var(--color-divider)}
.sidebar-related li:last-child{border-bottom:none}
.sidebar-related a{display:block;padding:var(--space-3) 0;font-size:var(--text-sm);color:var(--navy-700);font-weight:500;transition:color var(--transition)}
.sidebar-related a:hover{color:var(--color-accent)}

/* ═══ BOTTOM CTA ═══ */
.bottom-cta{background:var(--navy-900);padding-block:clamp(var(--space-16),8vw,var(--space-24))}
.bottom-cta-inner{display:grid;grid-template-columns:1fr 1fr;gap:clamp(var(--space-10),6vw,var(--space-20));align-items:start}
@media(max-width:800px){.bottom-cta-inner{grid-template-columns:1fr}}
.cta-text{display:flex;flex-direction:column;gap:var(--space-5)}
.cta-headline{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:700;color:#fff;line-height:1.1}
.cta-sub{font-size:var(--text-base);color:rgba(255,255,255,.65);line-height:1.8;max-width:50ch}
.cta-contact-options{display:flex;flex-direction:column;gap:var(--space-3);padding-top:var(--space-2)}
.cta-option{display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-sm);color:rgba(255,255,255,.55)}
.cta-phone-link{color:#fff;font-weight:700;border-bottom:1px solid rgba(255,255,255,.4)}
.cta-phone-link:hover{border-bottom-color:#fff}
