/* Counseld guides and resources. Site base matches the live counseld.in content pages; guide components come from the First-Year Starter Guide. */
:root { --bg:#FBFAF6; --ink:#20302e; --muted:#4a5b58; --soft:#748480; --line:#E7DFD3; --sand:#F6F1EA; --teal:#2F6F6B; --teal-dk:#1f4f4c; --teal-soft:#DFEBE8; --coral:#DD7556; --coral-soft:#FAE6DE; --gold:#C8863B; --gold-soft:#F7ECD9; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin:0; background:var(--bg); color:var(--ink); font-family:'Hanken Grotesk',system-ui,sans-serif; -webkit-font-smoothing:antialiased; line-height:1.65; }
a { color:var(--teal); }
a:hover { color:var(--teal-dk); }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible { outline:2px solid var(--teal); outline-offset:3px; border-radius:6px; }
.skip { position:absolute; left:-9999px; top:0; }
.skip:focus { left:12px; top:12px; background:var(--teal); color:#FAF7F1; padding:10px 16px; border-radius:8px; font-weight:700; z-index:10; }

/* Header and footer (same as the live site) */
header.top { border-bottom:1px solid var(--line); background:var(--bg); }
.top-in { max-width:1180px; margin:0 auto; padding:18px 24px; display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.top-in nav { display:flex; gap:22px; flex-wrap:wrap; }
.top-in nav a { color:var(--ink); text-decoration:none; font-weight:600; font-size:15px; }
.top-in nav a[aria-current] { color:var(--teal); }
.cta { display:inline-block; padding:12px 24px; border-radius:999px; background:var(--teal); color:#FAF7F1 !important; font-weight:700; text-decoration:none; border:0; font:inherit; font-weight:700; cursor:pointer; }
.cta:hover { background:var(--teal-dk); }
.cta.coral { background:var(--coral); }
.cta.coral:hover { background:#c4603f; }
.cta.ghost { background:transparent; color:var(--teal) !important; box-shadow:inset 0 0 0 1.5px var(--teal); }
.cta.ghost:hover { background:var(--teal-soft); }
footer.site { background:var(--ink); color:#9aa8a5; padding:56px 24px 30px; }
.foot { max-width:1180px; margin:0 auto; display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:36px; }
@media (max-width:860px) { .foot { grid-template-columns:1fr 1fr; } }
@media (max-width:520px) { .foot { grid-template-columns:1fr; } }
.foot h2 { font-family:'Hanken Grotesk',sans-serif; font-size:13px; font-weight:700; color:#FAF7F1; margin:0 0 14px; }
.foot a { display:block; color:#9aa8a5; text-decoration:none; font-size:14px; margin-bottom:10px; }
.foot a:hover { color:#FAF7F1; }
.legal { max-width:1180px; margin:40px auto 0; border-top:1px solid #3a4644; padding-top:22px; text-align:center; font-size:12.5px; color:#748480; }
.legal p { color:#748480; font-size:12.5px; margin:0 0 6px; }

/* Page body */
main { max-width:860px; margin:0 auto; padding:48px 24px 80px; }
main.wide { max-width:1080px; }
.crumbs { font-size:13px; color:var(--soft); margin:0 0 18px; }
.crumbs a { color:var(--soft); }
h1 { font-family:'Newsreader',Georgia,serif; font-weight:500; font-size:clamp(32px,5vw,48px); line-height:1.1; margin:0 0 14px; color:var(--teal-dk); text-wrap:balance; }
h2 { font-family:'Newsreader',Georgia,serif; font-weight:500; font-size:clamp(24px,3.4vw,30px); line-height:1.2; margin:44px 0 12px; color:var(--teal-dk); }
h3 { font-size:17px; margin:28px 0 8px; color:var(--teal-dk); line-height:1.3; }
p, li { font-size:17px; color:var(--muted); }
p { margin:0 0 14px; }
.lede { font-size:19px; color:var(--ink); }
.meta { font-size:13.5px; color:var(--soft); margin:0 0 26px; }
.eyebrow { font-size:12.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--coral); font-weight:800; margin:0 0 10px; }
.answer { background:#fff; border:1px solid var(--line); border-left:4px solid var(--teal); border-radius:12px; padding:16px 20px; color:var(--ink); }
.answer b { display:block; font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--teal); margin-bottom:4px; }
.stage { display:inline-flex; align-items:center; gap:8px; font-size:13px; font-weight:700; color:var(--teal-dk); background:var(--sand); border-radius:999px; padding:4px 12px 4px 4px; margin:0 0 14px; }
.stage b { width:22px; height:22px; border-radius:50%; background:var(--coral); color:#fff; display:grid; place-items:center; font-size:11.5px; }
.g { margin-top:28px; display:flex; flex-direction:column; gap:20px; }
.g > * { margin:0; }
.g h3 { margin:6px 0 0; }
.g p, .g li { font-size:16px; }

/* Labels */
.tag { display:inline-block; font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; padding:3px 9px; border-radius:4px; vertical-align:middle; line-height:1.5; }
.tag.ev { background:var(--teal-soft); color:var(--teal-dk); }
.tag.pr { background:var(--coral-soft); color:#A6452A; }
.tag.lo { background:var(--gold-soft); color:#7E521F; }
.legend { display:grid; gap:8px; }
.legend div { display:grid; grid-template-columns:140px 1fr; gap:12px; align-items:center; font-size:15px; color:var(--muted); }

/* Contents */
.toc { list-style:none; margin:0; padding:0; display:grid; counter-reset:t; }
.toc li { border-bottom:1px solid var(--line); counter-increment:t; }
.toc li:first-child { border-top:1px solid var(--line); }
.toc a { display:grid; grid-template-columns:36px 230px 1fr; gap:14px; align-items:center; padding:10px 0; text-decoration:none; color:inherit; }
.toc a::before { content:counter(t); font-family:'Newsreader',serif; font-size:20px; color:var(--coral); }
.toc strong { justify-self:start; border:1.5px solid var(--teal); border-radius:999px; padding:2px 13px; font-size:14px; font-weight:600; color:var(--teal-dk); background:#fff; }
.toc strong::after { content:" \2192"; color:var(--coral); }
.toc a:hover strong { background:var(--teal-dk); color:#fff; }
.toc small { color:var(--muted); font-size:15px; }
.stages { display:flex; flex-wrap:wrap; gap:8px 26px; list-style:none; margin:0; padding:0; }
.stages li { display:inline-flex; align-items:center; gap:8px; background:var(--sand); border-radius:999px; padding:5px 14px 5px 5px; font-weight:700; color:var(--teal-dk); font-size:15px; position:relative; }
.stages li + li::before { content:"\2192"; position:absolute; left:-20px; color:var(--coral); }
.stages li b { width:24px; height:24px; border-radius:50%; background:var(--coral); color:#fff; display:grid; place-items:center; font-size:12px; }

/* Shared blocks */
.hold { background:var(--sand); border-radius:12px; padding:16px 22px; }
.hold h3 { margin:0; }
.hold ol { margin:10px 0 0; padding:0; list-style:none; display:grid; gap:8px; counter-reset:h; }
.hold ol li { counter-increment:h; display:grid; grid-template-columns:32px 1fr; gap:10px; }
.hold ol li::before { content:counter(h); width:26px; height:26px; border-radius:50%; background:var(--teal-dk); color:#fff; font-weight:700; font-size:13px; display:grid; place-items:center; }
.hold.warn { background:var(--coral-soft); }
.hold.warn h3 { color:#A6452A; }
.ticks { list-style:none; margin:10px 0 0; padding:0; display:grid; gap:8px; }
.ticks li { display:grid; grid-template-columns:18px 1fr; gap:8px; }
.ticks li::before { content:"\2192"; color:var(--coral); font-weight:700; }
.callout { background:var(--gold-soft); border-radius:12px; padding:14px 20px; color:var(--ink); font-size:16px; }
.two { display:grid; grid-template-columns:1fr 1fr; gap:16px; }

/* Year map */
.stops { display:grid; grid-template-columns:1fr 1fr; gap:18px; counter-reset:s; }
.stop { position:relative; border:1.5px solid var(--line); border-radius:14px; padding:18px 18px 16px 70px; background:#fff; }
.stop .node { position:absolute; left:16px; top:18px; width:40px; height:40px; border-radius:50%; background:var(--coral); color:#fff; font-weight:700; font-size:17px; display:grid; place-items:center; }
.stop .when { font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--coral); font-weight:700; margin:0; }
.stop h3 { font-size:19px; margin:2px 0 2px; }
.stop .goal { font-size:15px; margin:0; }
.stop ul { margin:10px 0 0; padding:0; list-style:none; display:grid; gap:5px; }
.stop li { font-size:15px; position:relative; padding-left:22px; line-height:1.4; }
.stop li::before { content:""; position:absolute; left:0; top:6px; width:8px; height:8px; border-radius:2px; background:var(--teal-soft); border:1.5px solid var(--teal); }
.finish { justify-self:start; align-self:flex-start; background:var(--gold); color:#fff; font-size:12.5px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; border-radius:6px; padding:6px 12px; }

/* Checklist */
.weeks { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.week { border:1.5px solid var(--line); border-radius:12px; overflow:hidden; background:#fff; }
.week h3 { background:var(--teal-dk); color:#fff; margin:0; padding:10px 16px; font-size:16px; display:flex; gap:10px; align-items:baseline; }
.week h3 small { font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:#F5B9A5; font-weight:700; }
.week ul { list-style:none; margin:0; padding:12px 16px 14px; display:grid; gap:9px; }
.week li, .checks li { position:relative; padding-left:30px; font-size:15.5px; line-height:1.45; }
.week li::before, .checks li::before { content:""; position:absolute; left:0; top:4px; width:15px; height:15px; border:1.8px solid var(--teal); border-radius:3px; }
.checks { list-style:none; margin:10px 0 0; padding:0; display:grid; gap:8px; }

/* Safety */
.safe { display:grid; gap:12px; }
.safe .card { border-radius:12px; padding:18px 22px; background:var(--sand); display:grid; grid-template-columns:52px 1fr; gap:12px; align-items:center; }
.safe .n { width:42px; height:42px; border-radius:50%; background:var(--teal-dk); color:#fff; font-weight:700; font-size:17px; display:grid; place-items:center; }
.safe h3 { margin:0; font-size:18px; }
.safe p { margin:4px 0 0; font-size:16px; }
.emergency { background:var(--coral); color:#fff; border-radius:12px; padding:16px 22px; display:flex; align-items:center; gap:16px; flex-wrap:wrap; }
.emergency b { font-size:13px; letter-spacing:.1em; text-transform:uppercase; }
.emergency p { color:#fff; margin:0; font-size:17px; }

/* Tables */
.tbl { overflow-x:auto; }
table { width:100%; border-collapse:collapse; font-size:15.5px; background:#fff; border:1px solid var(--line); border-radius:12px; overflow:hidden; }
th, td { text-align:left; padding:11px 14px; border-bottom:1px solid var(--line); vertical-align:top; color:var(--muted); line-height:1.5; }
th { background:var(--teal-soft); color:var(--teal-dk); font-weight:700; font-size:14px; }
tr:last-child td { border-bottom:none; }
td.k { font-weight:700; color:var(--teal-dk); white-space:nowrap; }
.rate td:not(:first-child) { width:84px; border-left:1px solid var(--line); }
.rate.plan td { height:52px; }
.rate.plan td:not(:first-child) { width:auto; }

/* Confidentiality */
.stick { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.stick div { background:var(--sand); border-radius:12px; padding:14px 18px; }
.stick b { color:var(--teal-dk); display:block; }
.stick p { margin:4px 0 0; font-size:15.5px; }

/* Session flow */
.flow { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px; list-style:none; margin:0; padding:0; }
.flow li { background:var(--sand); border-radius:10px; padding:12px 12px 14px; display:flex; flex-direction:column; gap:4px; }
.flow i { font-style:normal; font-size:12.5px; color:var(--coral); font-weight:700; }
.flow b { color:var(--teal-dk); font-size:16px; }
.flow span { font-size:14.5px; line-height:1.45; }
.flow-note { border-left:4px solid var(--coral); padding:4px 0 4px 14px; }

/* Referral path */
.path { list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:8px; counter-reset:p; }
.path li { counter-increment:p; display:flex; align-items:center; gap:8px; background:var(--sand); border-radius:999px; padding:7px 15px 7px 7px; font-size:15px; font-weight:600; color:var(--teal-dk); }
.path li::before { content:counter(p); width:24px; height:24px; border-radius:50%; background:var(--teal-dk); color:#fff; display:grid; place-items:center; font-size:12px; }

/* Conversations */
.convos { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.convo { border:1.5px solid var(--line); border-radius:14px; padding:14px 16px 16px; display:flex; flex-direction:column; gap:10px; background:#fff; }
.convo h3 { font-size:12.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--coral); margin:0; }
.msg { display:flex; gap:8px; align-items:flex-end; margin:0; }
.msg .who { flex:none; width:30px; height:30px; border-radius:50%; display:grid; place-items:center; font-size:11px; font-weight:700; }
.msg .b { padding:9px 13px; border-radius:14px; font-size:15px; line-height:1.45; max-width:86%; margin:0; color:var(--ink); }
.msg.them .who { background:var(--gold-soft); color:#7E521F; }
.msg.them .b { background:#F3F1EC; border-bottom-left-radius:4px; }
.msg.you { flex-direction:row-reverse; }
.msg.you .who { background:var(--teal-dk); color:#fff; }
.msg.you .b { background:var(--teal); color:#fff; border-bottom-right-radius:4px; }

/* Year-end */
.stepbox { border:1.5px solid var(--line); border-radius:12px; padding:14px 18px 16px; background:#fff; }
.stephead { display:flex; align-items:center; gap:10px; }
.stephead .sn { width:28px; height:28px; border-radius:50%; background:var(--teal-dk); color:#fff; display:grid; place-items:center; font-weight:700; font-size:13px; flex:none; }
.stephead h3 { margin:0; }
.flabel { font-size:12px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--coral); margin:12px 0 4px; }
.fields { display:grid; gap:8px 12px; }
.fields.c2 { grid-template-columns:1fr 1fr; }
.fields.c3 { grid-template-columns:repeat(3,1fr); }
.fields.c4 { grid-template-columns:repeat(4,1fr); }
.fields div { border:1px solid var(--line); border-radius:8px; min-height:46px; padding:4px 8px; background:var(--bg); font-size:12px; color:var(--muted); font-weight:600; }
.sendoff { background:var(--teal-dk); border-radius:14px; padding:18px 22px; }
.sendoff p { color:#EAF1EF; margin:0 0 6px; }
.sendoff .end { font-family:'Newsreader',serif; font-style:italic; font-size:28px; color:#F2B49F; margin:0; }

/* References */
.refs ul { margin:0; padding:0; list-style:none; display:grid; gap:10px; }
.refs li { font-size:15px; line-height:1.5; }
.refs a { word-break:break-word; }

/* Cite box, pager, download card */
.cite { margin-top:40px; border:1.5px dashed var(--teal); border-radius:14px; padding:16px 20px; }
.cite p { font-size:15px; margin:0; }
.cite b { font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--teal); display:block; margin-bottom:4px; }
.cite code { font-family:inherit; color:var(--ink); }
.pager { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:28px; }
.pager a { display:block; border:1px solid var(--line); border-radius:12px; padding:12px 16px; text-decoration:none; background:#fff; }
.pager a:hover { border-color:var(--teal); }
.pager small { display:block; font-size:12.5px; color:var(--soft); }
.pager span { font-weight:700; color:var(--teal-dk); }
.pager .next { text-align:right; grid-column:2; }
.dl { background:var(--teal-dk); border-radius:20px; padding:26px 28px; margin:44px 0 0; display:grid; grid-template-columns:1fr auto; gap:18px 28px; align-items:center; }
.dl h2 { color:#fff; margin:0 0 6px; }
.dl p { color:#cfe0dc; margin:0; font-size:16px; }
.print-btn { display:inline-flex; align-items:center; gap:7px; border:1.5px dashed var(--teal); color:var(--teal-dk); background:transparent; border-radius:999px; padding:6px 14px; font:inherit; font-size:14px; font-weight:700; cursor:pointer; }
.h1row { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px 16px; }
.h1row h1 { margin-bottom:10px; }
.disclaimer { font-size:13.5px; color:var(--soft); margin-top:28px; }

/* Resources hub */
.hub-hero { max-width:720px; }
.res-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; margin-top:34px; }
.res { background:#fff; border:1px solid var(--line); border-radius:20px; padding:24px; display:flex; flex-direction:column; gap:10px; }
.res h2 { margin:0; font-size:26px; }
.res p { margin:0; font-size:16px; }
.res .kind { font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--coral); font-weight:800; }
.res .acts { margin-top:auto; padding-top:10px; display:flex; flex-wrap:wrap; gap:10px; }
.res.featured { grid-column:1/-1; display:grid; grid-template-columns:300px 1fr; gap:30px; align-items:center; background:var(--sand); border:0; }
.res.featured img { width:100%; height:auto; border-radius:10px; box-shadow:0 6px 24px rgba(31,79,76,.16); display:block; }
.res.featured .body { display:flex; flex-direction:column; gap:12px; }
.res.featured h2 { font-size:clamp(28px,3.6vw,36px); }
.res ul { margin:0; padding-left:20px; }
.res li { font-size:15.5px; }

/* Download form */
.form-wrap { display:grid; grid-template-columns:1fr 340px; gap:40px; align-items:start; }
form.lead { background:#fff; border:1px solid var(--line); border-radius:20px; padding:26px; display:grid; gap:16px; }
form.lead label { display:grid; gap:6px; font-weight:700; font-size:15px; color:var(--ink); }
form.lead label span.opt { font-weight:500; color:var(--soft); font-size:13.5px; }
form.lead input[type=text], form.lead input[type=email], form.lead select { font:inherit; font-size:16px; padding:11px 13px; border:1.5px solid var(--line); border-radius:10px; background:var(--bg); color:var(--ink); width:100%; }
form.lead input:focus, form.lead select:focus { border-color:var(--teal); outline:none; box-shadow:0 0 0 3px var(--teal-soft); }
form.lead .check { display:grid; grid-template-columns:22px 1fr; gap:10px; align-items:start; font-weight:500; font-size:14.5px; color:var(--muted); }
form.lead .check input { width:18px; height:18px; margin-top:3px; accent-color:var(--teal); }
form.lead .hp { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
form.lead .fine { font-size:13px; color:var(--soft); margin:0; }
form.lead .cta { justify-self:start; }
.err { background:var(--coral-soft); color:#8a3a22; border-radius:10px; padding:10px 14px; font-size:15px; margin:0; }
.ok { background:var(--teal-soft); border-radius:14px; padding:20px 22px; }
.ok p { color:var(--ink); }
.side-cover img { width:100%; height:auto; border-radius:10px; box-shadow:0 6px 24px rgba(31,79,76,.16); display:block; }
.side-cover ul { padding-left:20px; margin:16px 0 0; }
.side-cover li { font-size:15px; }

@media (max-width:760px) {
  .weeks, .stops, .convos, .two, .stick, .res-grid, .pager, .form-wrap, .dl { grid-template-columns:1fr; }
  .res.featured { grid-template-columns:1fr; }
  .res.featured img { max-width:260px; }
  .pager .next { grid-column:1; }
  .flow { grid-template-columns:1fr 1fr; }
  .toc a { grid-template-columns:30px 1fr; }
  .toc small { grid-column:2; }
  .legend div { grid-template-columns:1fr; gap:2px; }
  .fields.c3, .fields.c4 { grid-template-columns:1fr 1fr; }
  .side-cover { order:-1; max-width:260px; }
  td.k { white-space:normal; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior:auto; } }
@media print {
  header.top, footer.site, .crumbs, .cite, .pager, .dl, .print-btn, .skip, .answer, .disclaimer { display:none !important; }
  body { background:#fff; }
  main { padding:0; max-width:none; }
  .week, .stepbox, .convo, .card, .stop, tr { break-inside:avoid; }
}
