/* ===== HoldenWorks shared stylesheet ===== */
:root{
    --radius: 2px;
    --copy: #22377A;
    --title: #1F634A;
  }

  /* ===== THEME 1: ARCHIVE (heritage / record-room) ===== */
  body[data-theme="archive"]{
    --bg: #EDE6D6;
    --bg-alt: #E3D9C2;
    --ink: #2B3A4A;
    --ink-soft: #5b6573;
    --accent: #8B2E2E;
    --gold: #B08D57;
    --line: rgba(43,58,74,0.25);
    --display: 'Spectral', serif;
    --body: 'Source Sans 3', sans-serif;
    --mono: 'JetBrains Mono', monospace;
  }

  /* ===== THEME 2: LEDGER LINE (modern / cartographic) ===== */
  body[data-theme="modern"]{
    --bg: #F7F6F3;
    --bg-alt: #ECEAE4;
    --ink: #1F2937;
    --ink-soft: #5b6470;
    --accent: #3B6E71;
    --gold: #C98A3E;
    --line: rgba(31,41,55,0.18);
    --display: 'Inter', sans-serif;
    --body: 'Inter', sans-serif;
    --mono: 'JetBrains Mono', monospace;
  }

  /* ===== THEME 3: SEAL (academic / credentialed) ===== */
  body[data-theme="academic"]{
    --bg: #F1EAE0;
    --bg-alt: #E7DCC9;
    --ink: #2A2622;
    --ink-soft: #6b6258;
    --accent: #5C1A1B;
    --gold: #1B2A4A;
    --line: rgba(42,38,34,0.25);
    --display: 'Libre Baskerville', serif;
    --body: 'EB Garamond', serif;
    --mono: 'JetBrains Mono', monospace;
  }

  *{box-sizing:border-box; margin:0; padding:0;}
  body{
    background:var(--bg);
    color:var(--ink);
    font-family:var(--body);
    -webkit-font-smoothing:antialiased;
    transition: background .3s, color .3s;
  }
  p, .spec-text span, .founder-card p{ color:var(--copy) !important; }
  h1, h2, h3{ color:var(--title) !important; }
  a{color:inherit; text-decoration:none;}
  img,svg{display:block; max-width:100%;}

  /* ---- theme switcher bar (not part of the site itself) ---- */
  .switcher{
    position:sticky; top:0; z-index:100;
    background:#1a1a1a; color:#fff;
    padding:10px 24px;
    display:flex; align-items:center; gap:16px;
    font-family:'Inter',sans-serif; font-size:13px;
    flex-wrap:wrap;
  }
  .switcher span.label{opacity:.6; letter-spacing:.04em;}
  .switcher button{
    background:transparent; border:1px solid rgba(255,255,255,0.3);
    color:#fff; padding:6px 14px; border-radius:20px; cursor:pointer;
    font-family:'Inter',sans-serif; font-size:13px;
    transition: all .2s;
  }
  .switcher button.active{background:#fff; color:#1a1a1a; border-color:#fff;}
  .switcher button:hover{border-color:#fff;}

  /* ---- header / nav ---- */
  header{
    border-bottom:1px solid var(--line);
    background:var(--bg);
    color:#20629E;
    position:relative; z-index:90;
  }
  .nav-wrap{
    max-width:1180px; margin:0 auto; padding:22px 32px;
    display:flex; align-items:center; justify-content:space-between;
  }
  .brand{display:flex; align-items:baseline; gap:12px;}
  .brand-name{font-family:var(--display); font-size:24px; font-weight:600; letter-spacing:.01em; font-style:italic;}
  .nav-wrap .brand-name{font-size:33px; letter-spacing:.05em;}
  .brand-sub{font-family:var(--mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:#20629E;}

  nav.primary{display:flex; gap:30px; font-family:var(--body); font-size:15px; align-items:center;}
  body[data-theme="modern"] nav.primary{font-size:14px; font-weight:500;}
  nav.primary > a{position:relative; padding:6px 0;}
  nav.primary > a:hover{color:var(--accent);}

  .has-dropdown{position:relative;}
  /* invisible bridge across the 6px gap so the menu stays open while the cursor
     travels from the trigger down to the items (keeps the visual float intact) */
  .has-dropdown::after{
    content:""; position:absolute; top:100%; left:0; right:0; height:8px;
  }
  .has-dropdown:hover .dropdown{display:block;}
  .dropdown{
    display:none; position:absolute; top:100%; left:-16px; min-width:220px; z-index:200;
    background:var(--bg); border:1px solid var(--line); padding:10px 0;
    box-shadow:0 8px 24px rgba(0,0,0,0.08); margin-top:6px;
  }
  .dropdown a{display:block; padding:9px 18px; font-size:14px; white-space:nowrap;}
  .dropdown a:hover{background:var(--bg-alt); color:var(--accent);}
  .caret{font-size:10px; margin-left:4px; opacity:.6;}

  .nav-cta{
    font-family:var(--mono); font-size:12px; letter-spacing:.05em; text-transform:uppercase;
    border:1px solid var(--ink); padding:9px 16px; border-radius:var(--radius);
  }
  body[data-theme="modern"] .nav-cta{border-radius:6px; border-color:var(--accent); color:var(--accent); font-family:'Inter'; font-weight:600; letter-spacing:0; text-transform:none; font-size:13px;}
  body[data-theme="academic"] .nav-cta{border-radius:0; font-family:var(--body); font-style:italic; text-transform:none; letter-spacing:0;}

  /* ---- hero ---- */
  .hero{
    max-width:1180px; margin:0 auto; padding:90px 32px 40px;
    display:grid; grid-template-columns:1.1fr 0.9fr; gap:60px; align-items:center;
  }
  .eyebrow{
    font-family:var(--mono); font-size:19px; letter-spacing:.08em; text-transform:uppercase;
    color:var(--accent); margin-bottom:18px; display:flex; align-items:center; gap:10px;
  }
  .eyebrow::before{content:""; width:26px; height:1px; background:var(--accent);}
  body[data-theme="academic"] .eyebrow{font-family:var(--body); font-style:italic; letter-spacing:.02em; font-size:20px;}
  body[data-theme="academic"] .eyebrow::before{display:none;}

  h1.headline{
    font-family:var(--display); font-weight:600; font-size:50px; line-height:1.12;
    letter-spacing:-0.01em; margin-bottom:24px;
  }
  body[data-theme="academic"] h1.headline{font-weight:400; font-style:normal;}
  body[data-theme="modern"] h1.headline{letter-spacing:-0.02em; font-weight:700;}
  .headline em{font-style:italic; color:var(--accent);}
  body[data-theme="modern"] .headline em{font-style:normal; color:var(--accent);}
  .headline .title-word{color:var(--title);}
  .headline .accent-word{color:var(--accent);}

  .hero-sub{font-size:18px; line-height:1.6; color:var(--ink-soft); max-width:480px; margin-bottom:18px;}
  .hero-sub:last-of-type{margin-bottom:32px;}

  .cta-row{display:flex; gap:16px; align-items:center; flex-wrap:wrap;}
  .btn-primary{
    background:var(--accent); color:#fff; padding:14px 26px; font-size:14px;
    font-family:var(--mono); letter-spacing:.04em; text-transform:uppercase; border-radius:var(--radius);
  }
  body[data-theme="modern"] .btn-primary{font-family:'Inter'; font-weight:600; letter-spacing:0; text-transform:none; border-radius:6px; font-size:15px;}
  body[data-theme="academic"] .btn-primary{font-family:var(--body); letter-spacing:.02em; text-transform:none; border-radius:0; font-size:15px;}
  .btn-secondary{font-size:14px; border-bottom:1px solid var(--ink); padding-bottom:2px;}

  /* signature element: the record seal */
  .seal-wrap{position:relative; display:flex; justify-content:center; align-items:center; height:320px;}
  .seal{
    width:260px; height:260px; border-radius:50%;
    border:2px solid var(--accent); display:flex; flex-direction:column;
    align-items:center; justify-content:center; text-align:center; position:relative;
    transform:rotate(-4deg);
  }
  .seal::before{
    content:""; position:absolute; inset:14px; border:1px solid var(--gold); border-radius:50%;
  }
  .seal .seal-top{font-family:var(--mono); font-size:10px; letter-spacing:.16em; text-transform:uppercase; color:var(--accent); margin-bottom:10px;}
  .seal .seal-main{font-family:var(--display); font-size:22px; font-weight:600; line-height:1.25; padding:0 30px;}
  .seal .seal-bottom{font-family:var(--mono); font-size:10px; letter-spacing:.1em; margin-top:10px; color:var(--ink-soft);}
  body[data-theme="modern"] .seal{transform:rotate(0); border-width:1.5px;}
  body[data-theme="modern"] .seal::before{display:none;}
  body[data-theme="modern"] .seal .seal-main{font-family:'Inter'; font-weight:700;}
  body[data-theme="academic"] .seal{border-width:3px; transform:rotate(0);}
  body[data-theme="academic"] .seal .seal-main{font-style:italic; font-weight:400;}

  body[data-theme="archive"] .seal-wrap{ display:none; }
  body[data-theme="modern"] .map-trace{opacity:.35;}

  /* ---- specializations ---- */
  .specializations{
    max-width:1180px; margin:0 auto; padding:0 32px 80px;
  }
  .spec-head{ margin-bottom:12px; }
  .spec-head h2{font-family:var(--display); font-size:30px; font-weight:600; margin-bottom:0;}
  body[data-theme="academic"] .spec-head h2{font-weight:400;}
  .spec-cta{ margin-top:36px; }
  .spec-head p{color:var(--ink-soft); line-height:1.6; font-size:15px;}

  ul.spec-list{list-style:none;}
  ul.spec-list li{
    padding:22px 0; border-top:1px solid var(--line);
    display:grid; grid-template-columns:36px 1fr; gap:18px; align-items:start;
  }
  ul.spec-list li:first-child{border-top:none;}
  .spec-num{font-family:var(--mono); font-size:12px; color:var(--accent); padding-top:3px;}
  .spec-icon{
    width:36px; height:36px; border:1.5px dashed var(--line); border-radius:6px;
    position:relative; flex-shrink:0;
  }
  .spec-icon::after{
    content: attr(data-icon-placeholder);
    position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
    font-family:var(--mono); font-size:10px; color:var(--ink-soft); opacity:.55;
  }
  /* When a real icon/image is ready, drop it in as: <span class="spec-icon"><img src="..." alt=""></span> and remove data-icon-placeholder */
  .spec-icon img{ width:100%; height:100%; object-fit:contain; border-radius:6px; }
  .spec-text strong{display:block; font-family:var(--display); font-size:18px; font-weight:600; margin-bottom:4px;}
  body[data-theme="academic"] .spec-text strong{font-weight:400; font-style:italic;}
  .spec-text span{color:var(--ink-soft); font-size:14.5px; line-height:1.5;}

  /* ---- services ---- */
  .services{ padding:0 32px 80px; }
  .services-inner{ max-width:1180px; margin:0 auto; }
  .services-head{ max-width:560px; margin-bottom:40px; }
  .services-head h2{ font-family:var(--display); font-size:30px; font-weight:600; margin:8px 0 10px; }
  body[data-theme="academic"] .services-head h2{ font-weight:400; }
  .services-head p{ font-size:15px; }
  .services-list{
    list-style:none; display:grid; grid-template-columns:1fr 1fr; gap:1px;
    background:var(--line); border:1px solid var(--line);
  }
  .services-list li{ background:var(--bg); padding:28px; }
  .services-list strong{
    display:block; font-family:var(--display); color:var(--title); font-size:19px;
    font-weight:600; margin-bottom:8px;
  }
  .services-list a{ display:block; }
  .services-list a:hover strong{ text-decoration:underline; color:var(--accent); }
  body[data-theme="academic"] .services-list strong{ font-weight:400; font-style:italic; }
  .services-list span{ font-size:14.5px; line-height:1.55; }

  /* ---- founders intro (page header) ---- */
  .founders-intro{
    max-width:760px; margin:0 auto; padding:90px 40px 50px; text-align:left;
  }
  .founders-title{
    font-family:var(--display); font-size:42px; font-weight:600; line-height:1.18;
    margin:10px 0 22px;
  }
  body[data-theme="academic"] .founders-title{font-weight:400;}
  .founders-lede{font-size:18px; line-height:1.6; color:var(--copy); max-width:600px;}
  /* Project Doctor lede bullets */
  .pd-lede-list{ list-style:disc; margin:16px 0 0; padding-left:22px; max-width:600px; }
  .pd-lede-list > li{ font-size:18px; line-height:1.6; color:var(--copy); }
  .pd-lede-sub{ list-style:circle; margin:6px 0 4px; padding-left:26px; }
  .pd-lede-sub > li{ font-size:18px; line-height:1.55; color:var(--copy); margin:3px 0; }

  .fees{ max-width:820px; margin:0 auto; padding:0 40px 90px; }
  .fees-rule{ border:0; border-top:1px solid var(--line); margin:0 0 10px; }
  .footnote{ max-width:820px; margin:0 auto; padding:22px 40px 60px 64px; font-size:14px; line-height:1.6; color:var(--ink-soft); }
  .footnote a{ color:var(--accent); }
  .footnote a:hover{ text-decoration:underline; }
  .fees-list{ list-style:none; }
  .fees-list li{
    padding:26px 0; border-top:1px solid var(--line);
    display:flex; flex-direction:column; gap:6px;
  }
  .fees-list li:first-child{ border-top:none; }
  .fee-title{
    font-family:var(--display); font-style:italic; font-size:24px; font-weight:600;
    color:var(--title);
  }
  .fee-rate{
    font-family:var(--body); font-size:18px; font-weight:600; color:var(--copy);
  }
  .fee-desc{ font-family:var(--body); font-size:18px; line-height:1.6; color:var(--copy); }
  .fees-note{
    margin-top:30px; font-size:18px; color:var(--ink-soft); font-style:italic;
    border-top:1px solid var(--line); padding-top:24px;
  }

  /* ---- contract link box (service pages) ---- */
  .contract-box{
    max-width:820px; margin:36px auto 4px; border:1px solid var(--line);
    background:var(--bg-alt); padding:26px 30px;
    display:flex; align-items:center; justify-content:space-between;
    gap:22px; flex-wrap:wrap;
  }
  .contract-box .cb-text strong{
    display:block; font-family:var(--display); font-style:italic; font-size:22px;
    font-weight:600; color:var(--title); margin-bottom:4px;
  }
  body[data-theme="academic"] .contract-box .cb-text strong{ font-weight:400; }
  .contract-box .cb-text span{ font-size:15px; color:var(--ink-soft); }
  .contract-box .btn-primary{ white-space:nowrap; }

  /* ---- service page hero: intro text paired with the agreement box ---- */
  .svc-hero{
    max-width:820px; margin:0 auto; padding:90px 40px 20px;
    display:grid; grid-template-columns:1.35fr 1fr; gap:44px; align-items:center;
  }
  .svc-hero .founders-title{ margin-top:6px; }
  .svc-hero .contract-box{
    margin:0; max-width:none; flex-direction:column; align-items:flex-start; gap:16px;
  }

  /* ---- paired half-and-half columns; the right side can be shaded ---- */
  .split-cols{
    display:grid; grid-template-columns:1fr 1fr; column-gap:30px;
  }
  .split-col{ padding:26px 0; }
  .split-col .fee-title{ display:block; margin-bottom:10px; }
  .split-shaded{ background:var(--bg-alt); padding:26px 28px; }

  /* ---- service section: header + intro sentence + two-column list ---- */
  .svc-section{ max-width:820px; margin:0 auto; padding:24px 40px 24px; }
  .svc-section h2{
    font-family:var(--display); font-size:28px; font-weight:600; color:var(--title); margin-bottom:8px;
  }
  body[data-theme="academic"] .svc-section h2{ font-weight:400; font-style:italic; }
  .svc-section-lede{ font-size:18px; line-height:1.6; color:var(--copy); margin-bottom:2px; }
  .svc-section .split-col{ padding:12px 0; }

  /* ---- founders strip ---- */
  .founders{
    background:var(--bg-alt); padding:64px 32px;
  }
  .founders-inner{max-width:1180px; margin:0 auto;}
  .founders-head .eyebrow{margin-bottom:10px;}
  .founders-head h2{font-family:var(--display); font-size:26px; font-weight:600;}
  body[data-theme="academic"] .founders-head h2{font-weight:400;}
  .founder-cards{display:grid; grid-template-columns:1fr 1fr; gap:24px;}
  .founder-card{background:var(--bg); border:1px solid var(--line); padding:26px;}
  .founder-card h3{font-family:var(--display); font-size:17px; margin-bottom:4px; font-weight:600;}
  .founder-card p{font-size:14px; color:var(--ink-soft); line-height:1.6;}
  .founder-card p em{color:var(--ink); font-style:italic;}
  .founder-role{font-family:var(--mono); font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--accent); margin-bottom:14px;}
  body[data-theme="academic"] .founder-role{font-family:var(--body); font-style:italic; text-transform:none; letter-spacing:0; font-size:13px;}
  .founder-photo{
    width:84px; height:84px; border-radius:50%; object-fit:cover;
    border:2px solid var(--accent); margin-bottom:14px;
  }
  body[data-theme="modern"] .founder-photo{border-radius:8px; border-width:1.5px;}
  body[data-theme="academic"] .founder-photo{border-radius:0; border-width:3px;}

  /* ---- footer ---- */
  footer{padding:50px 32px; border-top:1px solid var(--line); color:#20629E;}
  .footer-inner{max-width:1180px; margin:0 auto; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:16px;}
  .footer-inner .brand-name{font-size:22px; letter-spacing:.04em;}
  .foot-links{display:flex; gap:24px; font-size:13px; color:#20629E;}
  .foot-links a:hover{ color:var(--accent); }

  @media (max-width: 880px){
    .hero{grid-template-columns:1fr; padding-top:50px;}
    .specializations{grid-template-columns:1fr;}
    .services-list{grid-template-columns:1fr;}
    .founders-inner{grid-template-columns:1fr;}
    .founder-cards{grid-template-columns:1fr;}
    .svc-hero{grid-template-columns:1fr; padding-top:50px; gap:28px;}
    .split-cols{grid-template-columns:1fr; column-gap:0;}
    nav.primary{display:none;}
    h1.headline{font-size:36px;}
  }

  /* ---- Project Doctor: tier labels & notes (added for this page) ---- */
  .pd-label{ font-family:var(--mono); font-size:13px; letter-spacing:.08em; text-transform:uppercase; color:var(--accent); margin-right:8px; }
  .pd-tier-note{ font-family:var(--body); font-style:normal; font-weight:400; font-size:18px; color:var(--ink-soft); }
  .pd-flag{ font-family:var(--mono); font-size:13px; letter-spacing:.06em; text-transform:uppercase; color:var(--accent); margin-bottom:2px; }
  .pd-subnote{ font-size:18px; line-height:1.6; color:var(--ink-soft); padding-left:16px; border-left:2px solid var(--line); margin-top:2px; }

  /* ---- in-section bullet list (shared) ---- */
  .pd-list{ list-style:disc; margin:6px 0 2px; padding-left:22px; }
.fees-list .pd-list li, .split-col .pd-list li{ display:list-item; border-top:none; padding:0; font-size:18px; line-height:1.6; color:var(--copy); margin:5px 0; }
  .pd-list .pd-list{ list-style:circle; margin:4px 0 2px; }
  .pd-continue{ margin-top:10px; }
  .inline-link{ color:var(--accent); }
  .inline-link:hover{ text-decoration:underline; }

  /* ============================================================
     Specializations page — attribute columns (added for this page)
     ============================================================ */

  /* Breathing room between specialization categories (scoped via the
     .spec-list-spaced modifier so other .pd-lede-list pages are untouched). */
  .spec-list-spaced > li + li{ margin-top:34px; }

  /* Two-column open-circle sub-list, auto-flowing in row pairs (Narrative).
     Keeps the default .pd-lede-sub hanging marker so the LEFT column lines up
     with the single sub-bullets above it. */
  ul.pd-lede-sub.spec-cols{
    display:grid; grid-template-columns:1fr 1fr;
    column-gap:34px; row-gap:4px; max-width:760px;
  }
  ul.pd-lede-sub.spec-cols > li{ margin:2px 0; }
  .spec-span{ grid-column:1 / -1; }   /* reserved: a full-width row if ever needed */

  /* Two explicit columns:
     - Individual mentoring: 3 left / 2 right, right column vertically centered
     - Courses & workshops:  3 left / shaded 4 right, top-aligned
     Left <ul> keeps hanging markers (aligns with the bullets above); the shaded
     box uses inside markers so they sit on the shading, not off its edge. */
  .spec-split{
    display:grid; grid-template-columns:1fr 1fr;
    column-gap:34px; align-items:start; margin:6px 0 4px; max-width:760px;
  }
  .spec-split.spec-center{ align-items:center; }
  .spec-split > ul.pd-lede-sub{ margin:0; }
  .spec-split > ul.pd-lede-sub > li{ margin:2px 0; }
  .spec-split > ul.pd-lede-sub.split-shaded{ list-style-position:inside; padding:16px 22px; }

  /* Third-level CARET grid — used ONLY on Lineage, nested beneath "Galicia…".
     Swap '\25B8' (▸ caret) for '\25AA' (▪ cube) to change the marker. */
  ul.spec-l3{
    list-style:none; display:grid; grid-template-columns:1fr 1fr;
    column-gap:34px; row-gap:4px; margin:5px 0 4px; padding-left:22px; max-width:700px;
  }
  ul.spec-l3 > li{
    position:relative; padding-left:20px;
    font-size:18px; line-height:1.55; color:var(--copy); margin:0;
  }
  ul.spec-l3 > li::before{
    content:'\25B8'; position:absolute; left:0; top:0;
    color:var(--accent); font-size:13px; line-height:1.5;
  }

  @media (max-width:880px){
    ul.pd-lede-sub.spec-cols{ grid-template-columns:1fr; }
    .spec-split{ grid-template-columns:1fr; row-gap:14px; }
    .spec-split.spec-center{ align-items:start; }
    ul.spec-l3{ grid-template-columns:1fr; }
  }

  /* ---- Project Doctor hero: drop the Agreement box to sit centered against
     the six intro bullets (scoped to this page via .pd-hero, so Mentoring's
     svc-hero is unaffected). Tune the single margin-top value below —
     roughly one text line ≈ 29px — to raise or lower the box. On phones the
     hero stacks to one column, so the drop is removed. ---- */
  .pd-hero{ align-items:start; }
  .pd-hero .svc-hero-aside{ margin-top:120px; }
  @media (max-width:880px){
    .pd-hero .svc-hero-aside{ margin-top:0; }
  }

  /* ---- Mentoring hero: nudge the Agreement box down one text line (keeps the
     svc-hero centering intact). Increase 'top' by ~29px per additional line.
     Reset on phones, where the hero stacks to one column. ---- */
  .mentor-hero .svc-hero-aside{ position:relative; top:29px; }
  @media (max-width:880px){
    .mentor-hero .svc-hero-aside{ top:0; }
  }
