/* =========================================================
   LUMINTHIR PARTNERS — design tokens
   Locked 8 Aug 2026. Change values here, never inline.
   ========================================================= */

:root{
  /* ---- colour ---- */
  --ink:        #103B2E;   /* Deep Forest. Wordmark, headlines, buttons. */
  --base:       #FAF7F0;   /* Paper. Never pure white. */
  --card:       #FFFFFF;
  --text:       #1A1A17;
  --grey:       #63635A;   /* Body-safe grey, AA on paper. */
  --brass:      #A8873F;   /* Rules and marks only. Never body text. */
  --brass-text: #8A6E2F;   /* AA-safe brass for small caps labels. */
  --line:       #E7E2D6;
  --ink-hover:  #0B2A20;

  /* ---- type ---- */
  --display: 'Libre Baskerville', Georgia, 'Times New Roman', serif;
  --body:    'Libre Baskerville', Georgia, 'Times New Roman', serif;
  --sans:    'Inter', -apple-system, BlinkMacSystemFont, 'Helvetica Neue', Arial, sans-serif;

  --t-micro: 10px;
  --t-label: 11px;
  --t-fine:  12px;
  --t-small: 14.5px;
  --t-body:  16.5px;
  --t-lead:  18.5px;
  --t-h3:    19px;
  --t-h2:    22px;
  --t-h1:    34px;

  /* ---- space ---- */
  --s1: 6px;  --s2: 12px; --s3: 18px; --s4: 26px;
  --s5: 38px; --s6: 56px; --s7: 76px; --s8: 104px;

  --measure: 660px;
}

/* ---------- reset ---------- */
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
img{max-width:100%;display:block}

body{
  background:var(--base);
  color:var(--text);
  font-family:var(--body);
  font-size:var(--t-body);
  line-height:1.75;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

a:focus-visible,
button:focus-visible{outline:2px solid var(--ink);outline-offset:3px}

/* ---------- shell ---------- */
.wrap{max-width:var(--measure);margin:0 auto;padding:var(--s7) 30px var(--s8)}

/* ---------- masthead ---------- */
.masthead{display:flex;justify-content:space-between;align-items:baseline;
  gap:var(--s4);padding-bottom:var(--s3);border-bottom:1px solid var(--line)}
.wordmark{font-family:var(--display);letter-spacing:.26em;font-size:var(--t-fine);
  text-transform:uppercase;color:var(--ink);text-decoration:none;white-space:nowrap}
.wordmark span{color:var(--grey)}
.mastnav{font-family:var(--sans);font-size:var(--t-label);letter-spacing:.14em;
  text-transform:uppercase;color:var(--grey);text-decoration:none;white-space:nowrap}
.mastnav:hover{color:var(--ink)}

/* ---------- headings ---------- */
h1{font-family:var(--display);color:var(--ink);font-size:var(--t-h1);
  line-height:1.24;font-weight:400;letter-spacing:-.015em;
  margin:var(--s7) 0 var(--s3);max-width:16em}
h1.short{max-width:11em}

.place{font-family:var(--sans);font-size:var(--t-label);letter-spacing:.18em;
  text-transform:uppercase;color:var(--grey);margin-bottom:var(--s6)}

h2{font-family:var(--sans);color:var(--grey);font-size:var(--t-label);
  font-weight:500;letter-spacing:.20em;text-transform:uppercase;
  margin:var(--s7) 0 var(--s3)}

h3{font-family:var(--display);font-size:var(--t-h3);color:var(--ink);
  font-weight:400;line-height:1.35;margin-bottom:var(--s1)}

/* ---------- text ---------- */
p{margin-bottom:var(--s3)}
p:last-child{margin-bottom:0}
.lead{font-size:var(--t-lead);line-height:1.62;color:var(--ink)}
.corridor{font-family:var(--display);font-size:var(--t-lead);
  color:var(--ink);font-style:italic}
.quiet{font-family:var(--sans);font-size:var(--t-fine);letter-spacing:.05em;
  color:var(--grey);line-height:1.7}
.quiet a{color:var(--ink)}

hr.rule{border:none;border-top:1px solid var(--line);margin:var(--s7) 0}

ul.marks{list-style:none;margin-bottom:var(--s3)}
ul.marks li{margin-bottom:var(--s2);padding-left:22px;position:relative}
ul.marks li:last-child{margin-bottom:0}
ul.marks li::before{content:"";position:absolute;left:0;top:.85em;
  width:9px;height:1px;background:var(--brass)}

/* ---------- cards ---------- */
.cards{display:grid;gap:var(--s3)}
.cards.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.cards.four{grid-template-columns:repeat(2,minmax(0,1fr))}

.card{background:var(--card);border:1px solid var(--line);padding:var(--s4)}
.card .tag{display:block;font-family:var(--sans);font-size:var(--t-micro);
  letter-spacing:.20em;text-transform:uppercase;color:var(--brass-text);
  margin-bottom:var(--s2)}
.card p{font-size:var(--t-small);margin-bottom:0}

.card.mini{padding:var(--s3) var(--s3) calc(var(--s3) + 2px)}
.card.mini p{font-family:var(--display);font-size:var(--t-small);
  color:var(--ink);line-height:1.5}

/* ---------- role cards ---------- */
.rolecard{display:block;text-decoration:none;color:inherit;background:var(--card);
  border:1px solid var(--line);padding:var(--s4);margin-bottom:var(--s3);
  transition:border-color .15s ease}
.rolecard:hover,.rolecard:focus-visible{border-color:var(--ink)}
.rolecard .rt{font-family:var(--display);font-size:var(--t-h3);color:var(--ink);
  margin-bottom:var(--s1);line-height:1.3}
.rolecard .rm{font-family:var(--sans);font-size:var(--t-fine);letter-spacing:.04em;
  color:var(--grey);margin-bottom:var(--s2)}
.rolecard p{font-size:var(--t-small);margin-bottom:var(--s2)}
.rolecard .more{font-family:var(--sans);font-size:var(--t-label);
  letter-spacing:.14em;text-transform:uppercase;color:var(--ink)}

/* ---------- actions ---------- */
.cta{margin-top:var(--s4)}
.terms{font-size:var(--t-small);color:var(--grey);margin-top:var(--s3)}
.apply{display:inline-block;padding:16px 34px;background:var(--ink);
  color:var(--base);text-decoration:none;font-family:var(--sans);
  font-size:var(--t-fine);letter-spacing:.14em;text-transform:uppercase;
  transition:background .15s ease}
.apply:hover{background:var(--ink-hover)}

.back{display:inline-block;font-family:var(--sans);font-size:var(--t-label);
  letter-spacing:.14em;text-transform:uppercase;color:var(--grey);
  text-decoration:none;margin-top:var(--s6)}
.back:hover{color:var(--ink)}

/* ---------- footer ---------- */
.fine{font-family:var(--sans);font-size:var(--t-fine);color:var(--grey);
  margin-top:var(--s7);line-height:2;padding-top:var(--s4);
  border-top:1px solid var(--line)}
.fine a{color:var(--grey)}
.fine a:hover{color:var(--ink)}

/* ---------- responsive ---------- */
@media (max-width:680px){
  :root{--t-h1:27px;--t-lead:17px;--t-body:16px;--measure:100%}
  .wrap{padding:var(--s6) 22px var(--s7)}
  .cards.two,.cards.four{grid-template-columns:1fr}
  .masthead{flex-direction:column;align-items:flex-start;gap:var(--s1)}
  h1{margin-top:var(--s6)}
}

@media print{
  body{background:#fff}
  .apply{border:1px solid var(--ink);color:var(--ink);background:none}
}
