/* Hartnell & Fox - example law firm site.
   Charcoal ink, warm bone and brass. Spectral + Public Sans.
   Structure differs from the other four demos: a two-tier header, breadcrumbs
   on every inner page, a document-width main column with a sticky contact
   rail beside it, and people shown as monograms rather than stock faces. */

:root{
  --bone:#FAF8F4;
  --bone-2:#F2EEE6;
  --ink:#1C1F26;
  --ink-2:#2A2F38;
  --body:#4B5059;
  --muted:#7D838D;
  --brass:#B08B3F;
  --brass-2:#8E6E2B;
  --line:#E2DCD0;
  --disp:'Spectral',Georgia,serif;
  --text:'Public Sans',system-ui,sans-serif;
  --wrap:1180px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--bone);color:var(--body);font-family:var(--text);font-size:1.0625rem;line-height:1.7;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:var(--disp);color:var(--ink);margin:0;line-height:1.16;font-weight:600;letter-spacing:-.012em}
h1{font-size:clamp(2.3rem,4.6vw,3.6rem);line-height:1.08}
h2{font-size:clamp(1.65rem,3vw,2.3rem)}
h3{font-size:1.25rem}
p{margin:0 0 1.1em}
img{max-width:100%;display:block}
a{color:var(--brass-2)}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 26px}
.doc{max-width:720px}

.demo-note{background:var(--ink);color:#9BA2AC;text-align:center;font-size:.8125rem;padding:9px 16px}
.demo-note b{color:var(--brass)}

/* ---------- two-tier header ---------- */
.utility{background:var(--ink);color:#9BA2AC;font-size:.8125rem}
.utility-in{max-width:var(--wrap);margin:0 auto;padding:9px 26px;display:flex;gap:22px;flex-wrap:wrap;align-items:center}
.utility a{color:#D5D9DE;text-decoration:none}
.utility a:hover{color:#fff}
.utility .sp{margin-left:auto}

.head{background:var(--bone);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50}
.head-in{max-width:var(--wrap);margin:0 auto;padding:18px 26px;display:flex;align-items:center;gap:22px}
.mark{text-decoration:none;flex:0 0 auto}
.mark b{display:block;font-family:var(--disp);font-size:1.5rem;font-weight:600;color:var(--ink);letter-spacing:-.02em;line-height:1}
.mark span{display:block;font-size:.625rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--brass);margin-top:6px}
.nav{margin-left:auto;display:flex;gap:26px}
.nav a{font-size:.9375rem;font-weight:500;color:var(--body);text-decoration:none;padding:4px 0;border-bottom:2px solid transparent}
.nav a:hover{color:var(--ink)}
.nav a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--brass)}
.head .cta{background:var(--ink);color:#fff;text-decoration:none;font-weight:600;font-size:.875rem;padding:11px 18px;flex:0 0 auto}
.head .cta:hover{background:var(--brass-2)}
.burger{display:none;flex-direction:column;gap:5px;width:42px;height:42px;align-items:center;justify-content:center;background:0;border:1px solid var(--line);cursor:pointer;margin-left:auto}
.burger span{display:block;width:18px;height:1.5px;background:var(--ink);transition:transform .2s,opacity .15s}
.burger.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.burger.open span:nth-child(2){opacity:0}
.burger.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}

/* ---------- breadcrumbs ---------- */
.crumbs{border-bottom:1px solid var(--line);background:var(--bone-2)}
.crumbs ol{max-width:var(--wrap);margin:0 auto;padding:12px 26px;list-style:none;display:flex;gap:9px;flex-wrap:wrap;font-size:.8125rem}
.crumbs li::after{content:'/';margin-left:9px;color:var(--muted)}
.crumbs li:last-child::after{content:''}
.crumbs a{color:var(--muted);text-decoration:none}
.crumbs a:hover{color:var(--ink)}
.crumbs li[aria-current]{color:var(--ink);font-weight:600}

/* ---------- hero ---------- */
.hero{position:relative;background:var(--ink)}
.hero img{width:100%;height:clamp(340px,46vw,520px);object-fit:cover;opacity:.42}
.hero-box{
  max-width:var(--wrap);margin:0 auto;padding:0 26px;
  position:absolute;inset:0;display:flex;align-items:center;left:50%;transform:translateX(-50%);width:100%;
}
.hero h1{color:#fff;max-width:17ch}
.hero p{color:#CBD1D8;max-width:46ch;font-size:1.125rem;margin-top:1em}
.eyebrow{font-size:.6875rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--brass);margin:0 0 1rem}

.btn{font-family:var(--text);font-weight:600;font-size:.9375rem;text-decoration:none;display:inline-block;padding:14px 24px;border:0;cursor:pointer;transition:background .15s}
.btn-ink{background:var(--ink);color:#fff}
.btn-ink:hover{background:var(--brass-2)}
.btn-brass{background:var(--brass);color:#fff}
.btn-brass:hover{background:var(--brass-2)}
.btn-line{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--line)}
.btn-line:hover{box-shadow:inset 0 0 0 1.5px var(--ink)}
.btn-pale{background:#fff;color:var(--ink)}
.btn-pale:hover{background:var(--bone-2)}
.btns{display:flex;gap:11px;flex-wrap:wrap;margin-top:1.8em}

/* ---------- document layout: main column + sticky rail ---------- */
.sec{padding:clamp(48px,6vw,86px) 0}
.sec-bone{background:var(--bone-2)}
.sec-ink{background:var(--ink);color:#B4BAC3}
.sec-ink h2,.sec-ink h3{color:#fff}
.layout{display:grid;grid-template-columns:minmax(0,1fr) 324px;gap:clamp(32px,5vw,72px);align-items:start}
.rail{position:sticky;top:104px}
.rail-card{background:#fff;border:1px solid var(--line);padding:26px 24px}
.rail-card h3{font-size:1.125rem;margin-bottom:.5em}
.rail-card p{font-size:.9375rem;margin-bottom:1.2em}
.rail-card .ph{display:block;font-family:var(--disp);font-size:1.5rem;color:var(--ink);text-decoration:none;margin-bottom:.2em}
.rail-card .ph:hover{color:var(--brass-2)}
.rail-card small{display:block;color:var(--muted);font-size:.8125rem;margin-bottom:1.3em}
.rail-note{margin-top:16px;padding:16px 18px;background:var(--bone-2);border-left:3px solid var(--brass);font-size:.875rem}

/* ---------- practice list ---------- */
.areas{border-top:1px solid var(--line)}
.area{display:grid;grid-template-columns:auto 1fr auto;gap:22px;align-items:start;padding:24px 0;border-bottom:1px solid var(--line);text-decoration:none;color:inherit;transition:padding-left .2s ease}
.area:hover{padding-left:10px}
.area .num{font-family:var(--disp);font-size:.9375rem;color:var(--brass);padding-top:3px}
.area h3{margin-bottom:.25em}
.area p{margin:0;font-size:.96875rem}
.area .ch{color:var(--muted);font-size:1.25rem;line-height:1}
.area:hover .ch{color:var(--brass)}

/* ---------- SIGNATURE: where do you stand ----------
   The first contact with a lawyer is the hard part - people do not know if
   their problem is even worth a call, or whether they are out of time. This
   gives a plain answer and flags the deadlines, which is the bit that
   actually matters. */
.triage{background:#fff;border:1px solid var(--line)}
.triage-top{padding:26px 28px;border-bottom:1px solid var(--line)}
.triage-top h3{font-size:1.375rem;margin-bottom:.3em}
.triage-top p{margin:0;font-size:.9375rem;color:var(--muted)}
.choices{display:grid;grid-template-columns:repeat(2,1fr);gap:0}
.choice{
  text-align:left;background:#fff;border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);
  padding:18px 24px;cursor:pointer;font-family:var(--text);font-size:.96875rem;color:var(--body);
  display:flex;align-items:center;gap:12px;transition:background .15s;
}
.choice:nth-child(2n){border-right:0}
.choice:hover{background:var(--bone-2)}
.choice[aria-pressed="true"]{background:var(--bone-2);color:var(--ink);font-weight:600;box-shadow:inset 3px 0 0 var(--brass)}
.choice i{font-style:normal;color:var(--brass);font-family:var(--disp);flex:0 0 auto}
.answer{padding:28px}
.answer h4{font-family:var(--disp);font-size:1.25rem;color:var(--ink);margin-bottom:.5em}
.answer p{font-size:1rem}
.answer .steps{list-style:none;margin:0 0 1.2em;padding:0}
.answer .steps li{position:relative;padding:7px 0 7px 26px;font-size:.96875rem}
.answer .steps li::before{content:'';position:absolute;left:0;top:16px;width:11px;height:1.5px;background:var(--brass)}
.flag{display:flex;gap:12px;align-items:flex-start;padding:16px 18px;background:#FDF6E8;border-left:3px solid var(--brass);font-size:.9375rem;margin-bottom:1.3em}
.flag b{color:var(--ink)}

/* ---------- people as monograms ---------- */
.people{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.person{background:#fff;border:1px solid var(--line);padding:28px 26px}
.mono{
  width:68px;height:68px;display:grid;place-items:center;margin-bottom:18px;
  background:var(--ink);color:var(--brass);font-family:var(--disp);font-size:1.5rem;letter-spacing:.02em;
}
.person h3{margin-bottom:.15em}
.person .role{font-size:.8125rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--brass);margin-bottom:1em}
.person p{font-size:.9375rem;margin-bottom:0}
.person dl{margin:1.1em 0 0;font-size:.875rem}
.person dt{font-weight:600;color:var(--ink);margin-top:.6em}
.person dd{margin:0;color:var(--muted)}

/* ---------- fees table ---------- */
.fees{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line)}
.fees th,.fees td{text-align:left;padding:15px 18px;border-bottom:1px solid var(--line)}
.fees th{font-family:var(--text);font-size:.75rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);background:var(--bone-2)}
.fees tr:last-child td{border-bottom:0}
.fees td:last-child{font-family:var(--disp);color:var(--ink);white-space:nowrap}
.fees td small{display:block;color:var(--muted);font-size:.875rem;font-family:var(--text)}

/* ---------- misc ---------- */
.pull{border-left:3px solid var(--brass);padding:4px 0 4px 26px;margin:2em 0;max-width:60ch}
.pull p{font-family:var(--disp);font-size:clamp(1.2rem,2.2vw,1.5rem);line-height:1.4;color:var(--ink);margin:0}
.field{display:block;margin-bottom:16px}
.field span{display:block;font-weight:600;font-size:.8125rem;color:var(--ink);margin-bottom:7px}
.field input,.field select,.field textarea{width:100%;font-family:var(--text);font-size:1rem;color:var(--ink);background:#fff;border:1px solid var(--line);padding:12px 13px}
.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--brass);outline-offset:1px;border-color:transparent}
.trap{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.two-up{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.hours{list-style:none;margin:0;padding:0;max-width:380px}
.hours li{display:flex;justify-content:space-between;gap:18px;padding:11px 0;border-bottom:1px solid var(--line)}
.hours li:last-child{border-bottom:0}
.hours .t{font-family:var(--disp);color:var(--ink)}

.foot{background:var(--ink);color:#878E98;padding:38px 0 30px;font-size:.9375rem}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:30px;padding-bottom:26px;border-bottom:1px solid rgba(255,255,255,.1)}
.foot h4{font-family:var(--text);font-size:.75rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#fff;margin-bottom:14px}
.foot a{color:#C3C9D1;text-decoration:none;display:block;padding:3px 0}
.foot a:hover{color:#fff}
.foot-base{padding-top:18px;font-size:.8125rem;display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap}

@media (prefers-reduced-motion:no-preference){
  .has-js .up{opacity:0;transform:translateY(16px);transition:opacity .55s ease,transform .55s ease}
  .has-js .up.in{opacity:1;transform:none}
}
:focus-visible{outline:2px solid var(--brass);outline-offset:2px}

@media (max-width:980px){
  .layout{grid-template-columns:1fr}
  .rail{position:static}
  .people{grid-template-columns:1fr 1fr}
  .foot-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:760px){
  .burger{display:flex}
  .head .cta,.utility .sp{display:none}
  .nav{
    position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:0;background:var(--bone);
    border-bottom:1px solid var(--line);padding:4px 0 8px;display:none;
    box-shadow:0 16px 24px -20px rgba(28,31,38,.5);
  }
  .nav.open{display:flex}
  .nav a{padding:13px 26px;border-bottom:1px solid var(--line);border-left:3px solid transparent}
  .nav a[aria-current="page"]{border-bottom-color:var(--line);border-left-color:var(--brass)}
  .head-in{position:relative}
  .people,.choices,.two-up,.foot-grid{grid-template-columns:1fr}
  .choice{border-right:0}
  .area{grid-template-columns:auto 1fr;gap:16px}
  .area .ch{display:none}
}
