/* ── method.css ──────────────────────────────────────────────────────────
   Hand-written, namespaced under .method-page. All visual styling for the
   /method route lives here. Mirrors the home-v2.css convention: one CSS
   file per public-facing page, scoped under a single root class so its
   rules cannot leak into layouts.participant's shared chrome (nav,
   footer, tokens.css, blocks.css, templates.css).

   Custom properties are declared on .method-page (not :root) so they
   override blocks.css's --red without polluting the global token scope.
   Fonts come from layouts.participant via /fonts/fonts.css (DM Sans,
   DM Mono, Bebas Neue, Playfair Display, Abel). */

.method-page{
  --cream:#E2DCD0;
  --ink:#1A1612;
  --red:#C03525;
  --muted:#8C8078;
  --border:rgba(26,22,18,0.12);
  background:var(--cream);
  color:var(--ink);
  font-family:"DM Sans",sans-serif;
}
html:has(.method-page){scroll-behavior:smooth;}

/* ── Page header ───────────────────────────────────────────────────────── */
.method-page .page-header{
  position:relative;
  display:grid;grid-template-columns:1fr 1fr;
  border-bottom:1px solid var(--border);
  min-height:320px;
}
.method-page .ph-left{
  padding:60px 44px;
  border-right:1px solid var(--border);
  display:flex;flex-direction:column;justify-content:space-between;
}
.method-page .ph-kicker{
  font-family:"DM Mono",monospace;
  font-size:10px;letter-spacing:0.22em;text-transform:uppercase;
  color:var(--muted);
  display:flex;align-items:center;gap:12px;
  margin-bottom:32px;
}
.method-page .ph-kicker::before,
.method-page .ph-kicker::after{
  content:"";width:18px;height:1px;background:var(--red);
}
.method-page .ph-title{
  font-family:"Bebas Neue",sans-serif;
  font-size:clamp(64px,8vw,110px);
  letter-spacing:0.015em;
  color:var(--ink);
  line-height:0.92;
}
.method-page .ph-title em{
  display:block;
  font-family:"Playfair Display",serif;
  font-size:clamp(48px,6vw,82px);
  font-style:italic;font-weight:400;
  color:var(--red);
}
.method-page .ph-bottom{
  font-family:"DM Mono",monospace;
  font-size:9px;letter-spacing:0.14em;text-transform:uppercase;
  color:var(--muted);
  margin-top:40px;
}
.method-page .ph-right{
  padding:60px 44px;
  display:flex;flex-direction:column;justify-content:center;gap:28px;
}
.method-page .ph-intro{
  font-family:"Playfair Display",serif;
  font-size:20px;font-style:italic;font-weight:400;
  color:var(--ink);
  line-height:1.45;
}
.method-page .ph-body{
  font-family:"DM Sans",sans-serif;
  font-size:13px;font-weight:300;
  color:var(--muted);
  line-height:1.85;
  max-width:520px;
}

/* ── Contents bar ──────────────────────────────────────────────────────── */
.method-page .contents{
  display:grid;grid-template-columns:200px 1fr;gap:0;
  border-bottom:1px solid var(--border);
}
.method-page .contents-label{
  font-family:"DM Mono",monospace;
  font-size:10px;letter-spacing:0.2em;text-transform:uppercase;
  color:var(--muted);
  padding:28px 44px;
  border-right:1px solid var(--border);
}
.method-page .contents-list{
  display:flex;gap:0;padding:0;list-style:none;
}
.method-page .contents-list a{
  font-family:"DM Mono",monospace;
  font-size:9px;letter-spacing:0.14em;text-transform:uppercase;
  color:var(--muted);
  text-decoration:none;
  padding:28px 32px;
  border-right:1px solid var(--border);
  display:block;
  transition:color 0.2s,background 0.2s;
  white-space:nowrap;
}
.method-page .contents-list a:hover{
  color:var(--ink);background:rgba(26,22,18,0.03);
}

/* ── Section blocks ────────────────────────────────────────────────────── */
.method-page .section{
  display:grid;grid-template-columns:200px 1fr;gap:0;
  border-bottom:1px solid var(--border);
}
.method-page .section-tag{
  font-family:"DM Mono",monospace;
  font-size:11px;letter-spacing:0.2em;text-transform:uppercase;
  color:var(--red);
  padding:52px 44px;
  border-right:1px solid var(--border);
  position:sticky;top:0;height:fit-content;
}
.method-page .section-body{padding:52px 44px 52px 52px;}
.method-page .section-headline{
  font-family:"Bebas Neue",sans-serif;
  font-size:36px;letter-spacing:0.04em;
  color:var(--ink);
  line-height:1;margin-bottom:10px;
}
.method-page .section-subhead{
  font-family:"Playfair Display",serif;
  font-size:18px;font-style:italic;font-weight:400;
  color:var(--muted);
  line-height:1.4;margin-bottom:32px;
}
.method-page .prose{
  font-family:"DM Sans",sans-serif;
  font-size:14px;font-weight:300;
  color:var(--ink);
  line-height:1.85;
  max-width:680px;
}
.method-page .prose+.prose{margin-top:18px;}
.method-page .prose strong{font-weight:500;color:var(--ink);}
.method-page .prose em{font-style:italic;}
.method-page .pull-quote{
  border-left:3px solid var(--red);
  padding:20px 28px;margin:36px 0;max-width:600px;
}
.method-page .pq-text{
  font-family:"Playfair Display",serif;
  font-size:17px;font-style:italic;font-weight:400;
  color:var(--ink);
  line-height:1.5;margin-bottom:10px;
}
.method-page .pq-attr{
  font-family:"DM Mono",monospace;
  font-size:8px;letter-spacing:0.16em;text-transform:uppercase;
  color:var(--muted);
}
.method-page .note{
  background:rgba(26,22,18,0.04);
  border-left:2px solid var(--border);
  padding:16px 20px;margin:28px 0;max-width:640px;
}
.method-page .note-label{
  font-family:"DM Mono",monospace;
  font-size:8px;letter-spacing:0.16em;text-transform:uppercase;
  color:var(--red);margin-bottom:6px;
}
.method-page .note-body{
  font-family:"DM Sans",sans-serif;
  font-size:12px;font-weight:300;
  color:var(--muted);
  line-height:1.7;
}
.method-page h3{
  font-family:"Bebas Neue",sans-serif;
  font-size:20px;letter-spacing:0.06em;
  color:var(--ink);
  margin:36px 0 12px;
}
.method-page h3:first-child{margin-top:0;}
.method-page .refs{
  display:flex;flex-direction:column;gap:20px;max-width:640px;
}
.method-page .ref{
  display:grid;grid-template-columns:28px 1fr;gap:16px;align-items:start;
}
.method-page .ref-n{
  font-family:"DM Mono",monospace;
  font-size:9px;letter-spacing:0.1em;
  color:var(--red);
  padding-top:2px;
}
.method-page .ref-body{
  font-family:"DM Mono",monospace;
  font-size:10px;letter-spacing:0.04em;
  color:var(--muted);
  line-height:1.7;
}
.method-page .ref-body strong{color:var(--ink);font-weight:500;}

/* ── Footer CTA band ───────────────────────────────────────────────────── */
.method-page .footer-cta{
  display:grid;grid-template-columns:1fr 1fr;
  border-top:1px solid var(--border);
  align-items:center;
}
.method-page .fc-left{
  padding:60px 44px;
  border-right:1px solid var(--border);
}
.method-page .fc-headline{
  font-family:"Bebas Neue",sans-serif;
  font-size:clamp(36px,5vw,64px);
  letter-spacing:0.015em;
  color:var(--ink);
  line-height:0.95;
}
.method-page .fc-headline em{
  display:block;
  font-family:"Playfair Display",serif;
  font-size:clamp(28px,4vw,50px);
  font-style:italic;font-weight:400;
  color:var(--red);
}
.method-page .fc-right{
  padding:60px 44px;
  display:flex;flex-direction:column;gap:12px;align-items:flex-start;
  width:100%;
}
.method-page .fc-body{
  font-family:"DM Sans",sans-serif;
  font-size:13px;font-weight:300;
  color:var(--muted);
  line-height:1.7;
  max-width:420px;margin-bottom:8px;
}

/* ── Responsive ────────────────────────────────────────────────────────── */
@media(max-width:768px){
  .method-page .page-header{grid-template-columns:1fr;}
  .method-page .ph-left{
    border-right:none;
    border-bottom:1px solid var(--border);
    padding:40px 24px;
  }
  .method-page .ph-right{padding:32px 24px;}
  .method-page .ph-title{font-size:52px;}
  .method-page .contents{display:none;}
  .method-page .section{grid-template-columns:1fr;}
  .method-page .section-tag{
    position:static;
    border-right:none;
    border-bottom:1px solid var(--border);
    padding:24px 24px 16px;
  }
  .method-page .section-body{padding:24px;}
  .method-page .footer-cta{grid-template-columns:1fr;}
  .method-page .fc-left{
    border-right:none;
    border-bottom:1px solid var(--border);
    padding:40px 24px;
  }
  .method-page .fc-right{padding:32px 24px;}
}
