/* Georgia Dispossessory Reference — shared stylesheet */

:root{
  --paper:#F5EFE6;
  --paper-2:#FBF7EF;
  --ink:#111111;
  --ink-soft:#2B2B2B;
  --muted:#5A5A57;
  --rule:rgba(17,17,17,.14);
  --rule-strong:rgba(17,17,17,.28);
  --accent:#7A1F1F;
  --accent-hover:#5E1616;
  --max:1140px;
  --measure:72ch;
  --serif:"Source Serif 4","Source Serif Pro",Georgia,"Times New Roman",serif;
  --sans:"Inter","Helvetica Neue",Arial,sans-serif;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:var(--sans);
  background:var(--paper);
  color:var(--ink);
  line-height:1.65;
  font-size:17px;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
a{color:var(--accent);text-decoration:none;border-bottom:1px solid transparent;transition:border-color .15s ease,color .15s ease}
a:hover{color:var(--accent-hover);border-bottom-color:var(--accent-hover)}
img{max-width:100%;display:block}

/* Layout */
.wrap{max-width:var(--max);margin:0 auto;padding:0 32px}
.wrap-narrow{max-width:820px;margin:0 auto;padding:0 32px}
.rule{height:1px;background:var(--rule);width:100%}
.rule-thick{height:1px;background:var(--rule-strong)}

/* Header */
.masthead{border-bottom:1px solid var(--rule);background:var(--paper)}
.masthead-top{display:flex;justify-content:space-between;align-items:center;padding:18px 0;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.masthead-top .loc{font-weight:600;color:var(--ink)}
.masthead-brand{padding:26px 0 20px;text-align:left}
.masthead-brand .pubname{
  font-family:var(--serif);
  font-size:clamp(1.9rem,3.6vw,2.6rem);
  font-weight:600;
  letter-spacing:-.01em;
  line-height:1.05;
  color:var(--ink);
  border:none;
}
.masthead-brand .pubname:hover{color:var(--ink);border:none}
.masthead-brand .tagline{font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);margin-top:10px;font-weight:600}
.mastnav{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.mastnav ul{display:flex;gap:0;list-style:none;flex-wrap:wrap}
.mastnav a{
  display:block;padding:14px 22px;font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ink);font-weight:600;border:none;border-right:1px solid var(--rule);
}
.mastnav a:hover{background:var(--paper-2);color:var(--accent)}
.mastnav a.active{color:var(--accent)}

/* Typography */
h1,h2,h3,h4{font-family:var(--serif);font-weight:600;color:var(--ink);line-height:1.15;letter-spacing:-.01em}
h1{font-size:clamp(2.4rem,5.2vw,4rem);margin-bottom:.4em}
h2{font-size:clamp(1.7rem,3vw,2.3rem);margin-bottom:.5em}
h3{font-size:1.3rem;margin-bottom:.4em}
h4{font-size:1.05rem;margin-bottom:.35em}
p{margin-bottom:1.1em}
.prose p,.prose li{max-width:var(--measure)}
.prose h2{margin-top:2em}
.prose h3{margin-top:1.6em}
.prose ul,.prose ol{margin:0 0 1.2em 1.4em}
.prose li{margin-bottom:.4em}
.prose blockquote{
  border-left:2px solid var(--accent);
  padding:.2em 0 .2em 1.4em;margin:1.6em 0;
  font-family:var(--serif);font-size:1.2rem;color:var(--ink-soft);font-style:italic;
}
.prose hr{border:none;height:1px;background:var(--rule);margin:2.2em 0}

.eyebrow{
  font-family:var(--sans);
  font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--accent);font-weight:700;margin-bottom:14px;display:inline-block;
}
.deck{font-family:var(--serif);font-size:1.25rem;line-height:1.5;color:var(--ink-soft);max-width:var(--measure);margin-bottom:1.6em}
.byline{font-size:.86rem;letter-spacing:.05em;color:var(--muted);margin:1em 0 2.2em}
.byline strong{color:var(--ink)}

/* Hero */
.hero{padding:72px 0 56px;border-bottom:1px solid var(--rule)}
.hero .eyebrow{margin-bottom:20px}
.hero h1{max-width:18ch}
.hero .deck{margin-top:18px}

/* Grid primitives */
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:48px}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:40px}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:32px}
.two-col-article{display:grid;grid-template-columns:1fr 2fr;gap:56px}

/* Sections */
section.block{padding:72px 0;border-bottom:1px solid var(--rule)}
section.block:last-of-type{border-bottom:none}
.section-head{margin-bottom:48px;max-width:780px}
.section-head h2{margin-bottom:.3em}
.section-head p{color:var(--muted);font-size:1.05rem;max-width:var(--measure)}

/* Practice / Capability cards */
.practice{border-top:2px solid var(--ink);padding-top:24px}
.practice h3{font-family:var(--serif);font-size:1.5rem;margin-bottom:.5em}
.practice p{color:var(--muted);margin-bottom:.8em}
.practice a.more{font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--accent);border:none}
.practice a.more:hover{color:var(--accent-hover)}

/* Insight / article list */
.insight-list{list-style:none;display:grid;gap:0}
.insight-list li{padding:26px 0;border-bottom:1px solid var(--rule);display:grid;grid-template-columns:160px 1fr;gap:32px;align-items:start}
.insight-list li:first-child{border-top:1px solid var(--rule)}
.insight-list .meta{font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);font-weight:600;padding-top:4px}
.insight-list h3{font-family:var(--serif);font-size:1.3rem;margin-bottom:.3em}
.insight-list h3 a{color:var(--ink);border:none}
.insight-list h3 a:hover{color:var(--accent)}
.insight-list p{color:var(--muted);font-size:.98rem;margin-bottom:0}

/* Timeline / steps */
.procedure{display:grid;gap:0;margin-top:24px}
.procedure .step{
  display:grid;grid-template-columns:110px 1fr;gap:32px;
  padding:28px 0;border-top:1px solid var(--rule);
}
.procedure .step:last-child{border-bottom:1px solid var(--rule)}
.procedure .num{font-family:var(--serif);font-size:2.4rem;color:var(--accent);line-height:1;font-weight:600}
.procedure .step h3{margin-bottom:.4em}
.procedure .step p{color:var(--muted);margin-bottom:.6em;max-width:var(--measure)}
.procedure .cite{font-size:.82rem;color:var(--muted);font-style:italic}

/* Callouts */
.callout{
  background:var(--paper-2);border-left:3px solid var(--accent);
  padding:20px 24px;margin:1.8em 0;color:var(--ink-soft);
}
.callout strong{color:var(--ink)}
.disclaimer{font-size:.88rem;color:var(--muted);font-style:italic;padding:18px 22px;background:var(--paper-2);border:1px solid var(--rule);border-radius:0;margin:2em 0}

/* Buttons */
.btn{
  display:inline-block;padding:13px 24px;font-size:.82rem;
  letter-spacing:.14em;text-transform:uppercase;font-weight:600;
  border:1px solid var(--ink);color:var(--ink);background:transparent;
  transition:all .15s ease;cursor:pointer;
}
.btn:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.btn-accent{background:var(--accent);border-color:var(--accent);color:#fff}
.btn-accent:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}
.btn-row{display:flex;gap:14px;flex-wrap:wrap;margin-top:28px}

/* Contributor cards */
.contrib-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px}
.contrib{border-top:2px solid var(--ink);padding-top:24px}
.contrib .name{font-family:var(--serif);font-size:1.6rem;font-weight:600;color:var(--ink);margin-bottom:.1em}
.contrib .role{font-size:.8rem;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);font-weight:700;margin-bottom:1em}
.contrib p{color:var(--muted);max-width:var(--measure)}

/* Checklist */
.check-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px}
.check-card{border-top:2px solid var(--ink);padding-top:22px}
.check-card h3{font-family:var(--serif);font-size:1.4rem;margin-bottom:14px}
.check-list{list-style:none;padding:0;margin:0}
.check-list li{
  position:relative;padding:10px 0 10px 32px;border-bottom:1px dotted var(--rule);
  color:var(--ink-soft);font-size:.98rem;
}
.check-list li:last-child{border-bottom:none}
.check-list li::before{
  content:"";position:absolute;left:0;top:14px;width:16px;height:16px;
  border:1.5px solid var(--ink);background:transparent;
}

/* Course / module */
.module-header{padding:56px 0 32px;border-bottom:1px solid var(--rule)}
.module-header .eyebrow{color:var(--accent)}
.module-meta{display:flex;gap:24px;font-size:.82rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:600;margin-top:18px}
.module-meta span{border-right:1px solid var(--rule);padding-right:24px}
.module-meta span:last-child{border-right:none}

.objectives{background:var(--paper-2);border:1px solid var(--rule);padding:28px 32px;margin:2em 0}
.objectives h4{font-family:var(--serif);font-size:1.1rem;margin-bottom:.6em;color:var(--ink)}
.objectives ul{margin:0 0 0 1.4em;color:var(--ink-soft)}

.review-q{
  padding:20px 0;border-top:1px solid var(--rule);
}
.review-q:last-child{border-bottom:1px solid var(--rule)}
.review-q .q{font-family:var(--serif);font-size:1.1rem;color:var(--ink);margin-bottom:.5em}
.review-q .a{color:var(--muted);font-size:.96rem}

/* Module nav */
.module-nav{
  display:flex;justify-content:space-between;align-items:stretch;gap:24px;
  margin:64px 0 0;padding-top:32px;border-top:1px solid var(--rule);
}
.module-nav a{
  flex:1;padding:18px 22px;border:1px solid var(--rule);color:var(--ink);
  border-bottom:none;border-bottom:1px solid var(--rule);
}
.module-nav a:hover{background:var(--paper-2);color:var(--accent)}
.module-nav .label{font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-bottom:4px;display:block}
.module-nav .title{font-family:var(--serif);font-size:1.05rem;font-weight:600}

/* Footer */
.site-footer{padding:56px 0 64px;border-top:2px solid var(--ink);margin-top:64px;background:var(--paper)}
.site-footer .pubname{font-family:var(--serif);font-size:1.5rem;font-weight:600;color:var(--ink);margin-bottom:10px;display:block}
.site-footer .foot-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:48px}
.site-footer h5{font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink);font-weight:700;margin-bottom:14px}
.site-footer ul{list-style:none}
.site-footer li{margin-bottom:8px;font-size:.94rem}
.site-footer a{color:var(--muted);border:none}
.site-footer a:hover{color:var(--accent)}
.foot-bottom{margin-top:42px;padding-top:22px;border-top:1px solid var(--rule);font-size:.82rem;color:var(--muted);display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap}

/* Responsive */
@media (max-width: 900px){
  .grid-2,.grid-3,.grid-4,.two-col-article,.contrib-grid,.check-grid,.site-footer .foot-grid{grid-template-columns:1fr;gap:32px}
  .insight-list li{grid-template-columns:1fr;gap:6px}
  .procedure .step{grid-template-columns:1fr;gap:8px}
  .module-nav{flex-direction:column}
}
@media (max-width: 600px){
  .wrap,.wrap-narrow{padding:0 22px}
  .mastnav a{padding:12px 14px}
  body{font-size:16px}
  .hero{padding:44px 0 36px}
  section.block{padding:48px 0}
}

/* Pullquote — editorial */
.pullquote{
  border-left:3px solid var(--accent);
  padding:.3em 0 .3em 1.6em;
  margin:2.2em 0;
  max-width:62ch;
}
.pullquote p{
  font-family:var(--serif);
  font-size:1.45rem;
  line-height:1.35;
  color:var(--ink);
  font-style:italic;
  margin-bottom:.6em;
}
.pullquote cite{
  display:block;
  font-style:normal;
  font-family:var(--sans);
  font-size:.76rem;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--muted);
  font-weight:600;
}

/* Editorial sidebar — marginalia-style fact box */
.sidebar{
  background:transparent;
  border-top:1px solid var(--rule-strong);
  border-bottom:1px solid var(--rule-strong);
  padding:18px 0;
  margin:2em 0;
  max-width:62ch;
}
.sidebar .sidebar-label{
  font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--accent);font-weight:700;margin-bottom:.5em;
}
.sidebar p{font-size:.98rem;color:var(--ink-soft);margin-bottom:0}

/* Featured stat — single large number */
.stat{
  display:flex;align-items:baseline;gap:18px;
  padding:28px 0;margin:1.6em 0;
  border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);
  max-width:62ch;
}
.stat .n{font-family:var(--serif);font-size:3.2rem;font-weight:600;color:var(--accent);line-height:1}
.stat .l{font-size:.98rem;color:var(--ink-soft)}

/* Print (for checklist page) */
@media print{
  body{background:#fff;color:#000;font-size:11pt}
  .masthead,.site-footer,.mastnav,.no-print{display:none}
  section.block{padding:16px 0;border:none}
  .check-grid{grid-template-columns:1fr 1fr;gap:18px}
  .check-card{page-break-inside:avoid;border-top:1px solid #000;padding-top:10px}
  .check-list li{border-bottom:1px dotted #888}
  .check-list li::before{border-color:#000}
  a{color:#000;border:none}
}
