/* ============================================================
   DEITRICH PRIVATE CLIENT COUNSEL, A PROFESSIONAL CORPORATION
   Shared stylesheet. Linked by every page.
   Palette : petrol ink #0B1A1D / antique brass #A98A52
   Type    : Newsreader (display) / Source Sans 3 (body)
   ============================================================ */

:root{
  --ink:#0B1A1D; --ink-raise:#11262A; --ink-card:#0E2125; --ink-card-hi:#152E33;
  --ink-deep:#071316; --ink-floor:#040D0F;
  --brass:#A98A52; --brass-lift:#C9A768;
  --on-ink:#E9E4D8; --on-ink-mute:#96A4A3; --on-ink-soft:#74827F;
  --rule:rgba(233,228,216,.15); --rule-soft:rgba(233,228,216,.09);
  --display:"Newsreader", Georgia, "Times New Roman", serif;
  --body:"Source Sans 3", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
  --gut:clamp(20px,5vw,78px); --stack:clamp(72px,8vw,132px); --max:1260px;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  margin:0; background:var(--ink); color:var(--on-ink);
  font-family:var(--body); font-weight:300;
  font-size:clamp(16px,1.05vw,17.5px); line-height:1.68;
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
img{ max-width:100%; display:block; }
::selection{ background:var(--brass); color:var(--ink); }
:focus-visible{ outline:2px solid var(--brass-lift); outline-offset:3px; }
.wrap{ max-width:var(--max); margin:0 auto; padding-left:var(--gut); padding-right:var(--gut); }

/* ---------------- type ---------------- */

.eyebrow{
  font-size:.68rem; font-weight:600; letter-spacing:.24em;
  text-transform:uppercase; color:var(--brass); margin:0 0 1.5rem;
}
.display{
  font-family:var(--display); font-weight:300;
  line-height:1.08; letter-spacing:-.008em; margin:0; color:var(--on-ink);
}
h1.display{ font-size:clamp(2.3rem,5vw,3.9rem); }
h2.display{ font-size:clamp(1.9rem,3.6vw,2.9rem); }
h3.display{ font-size:clamp(1.28rem,1.9vw,1.62rem); line-height:1.2; font-weight:400; }
.display em{ font-style:italic; color:var(--brass-lift); }
.lede{
  font-size:clamp(1.03rem,1.3vw,1.2rem); line-height:1.68;
  font-weight:300; color:var(--on-ink-mute); max-width:60ch;
}
.label{ font-size:.64rem; letter-spacing:.2em; text-transform:uppercase; font-weight:600; }

.band{ padding:var(--stack) 0; position:relative; }
.band--raise{ background:var(--ink-raise); }
.band--deep{ background:var(--ink-deep); }
.section-head{ max-width:72ch; margin-bottom:clamp(44px,5vw,72px); }
.section-head h2{ margin-bottom:1.1rem; }

/* ---------------- header ---------------- */

header{
  position:fixed; inset:0 0 auto 0; z-index:60;
  padding:22px 0; border-bottom:1px solid transparent;
  transition:background .45s ease, border-color .45s ease, padding .45s ease;
}
header.scrolled{
  background:rgba(7,19,22,.93);
  backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
  border-bottom-color:var(--rule); padding:13px 0;
}
.bar{ display:flex; align-items:center; justify-content:space-between; gap:24px; }
.brand{ text-decoration:none; color:var(--on-ink); display:block; line-height:1; }
.brand .name{
  font-family:var(--display); font-weight:400;
  font-size:clamp(1.1rem,1.5vw,1.35rem); letter-spacing:.16em; display:block;
}
.brand .sub{
  font-size:.55rem; letter-spacing:.2em; text-transform:uppercase;
  color:var(--brass); margin-top:7px; display:block; font-weight:600; white-space:nowrap;
}
.brand .corp{
  font-size:.5rem; letter-spacing:.17em; text-transform:uppercase;
  color:var(--on-ink-mute); margin-top:5px; display:block; font-weight:500; white-space:nowrap;
}

/* tabbed navigation */
nav.links{ display:flex; align-items:center; gap:8px; }
nav.links a{
  color:var(--on-ink-mute); text-decoration:none;
  font-size:.71rem; letter-spacing:.14em; text-transform:uppercase;
  font-weight:500; padding:9px 15px; position:relative;
  transition:color .25s ease;
}
nav.links a::after{
  content:""; position:absolute; left:15px; right:15px; bottom:0;
  height:1px; background:var(--brass);
  transform:scaleX(0); transform-origin:center;
  transition:transform .35s cubic-bezier(.19,1,.22,1);
}
nav.links a:hover{ color:var(--on-ink); }
nav.links a:hover::after{ transform:scaleX(1); }
nav.links a.here{ color:var(--brass-lift); }
nav.links a.here::after{ transform:scaleX(1); }

.btn{
  display:inline-block; font-family:var(--body);
  font-size:.72rem; letter-spacing:.17em; text-transform:uppercase; font-weight:600;
  text-decoration:none; padding:14px 26px;
  border:1px solid var(--brass); color:var(--brass); background:transparent;
  cursor:pointer; white-space:nowrap;
  transition:background .3s ease, color .3s ease, border-color .3s ease;
}
.btn:hover{ background:var(--brass); color:var(--ink); }
.btn--solid{ background:var(--brass); color:var(--ink); }
.btn--solid:hover{ background:var(--brass-lift); border-color:var(--brass-lift); }

/* mobile drawer */
.burger{
  display:none; background:none; border:0; cursor:pointer;
  padding:10px; margin-right:-10px;
}
.burger span{
  display:block; width:24px; height:1px; background:var(--on-ink);
  margin:6px 0; transition:transform .3s ease, opacity .3s ease;
}
body.menu-open .burger span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
body.menu-open .burger span:nth-child(2){ opacity:0; }
body.menu-open .burger span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

/* ---------------- page masthead ---------------- */

.masthead{
  padding:clamp(140px,16vw,208px) 0 clamp(48px,6vw,84px);
  background:
    radial-gradient(115% 85% at 78% 20%, #16302F 0%, rgba(11,26,29,0) 62%),
    var(--ink);
}
.masthead .lede{ margin-top:1.6rem; }

/* ---------------- practice cards ---------------- */

.practice{
  display:grid; grid-template-columns:repeat(2,1fr);
  gap:1px; background:var(--rule-soft); border:1px solid var(--rule-soft);
}
.practice article{
  background:var(--ink-card);
  padding:clamp(30px,3.2vw,46px) clamp(24px,2.8vw,44px) clamp(34px,4vw,52px);
  transition:background .4s ease;
}
.practice article:hover{ background:var(--ink-card-hi); }
.practice .cat{
  display:block; font-size:.62rem; letter-spacing:.2em; text-transform:uppercase;
  font-weight:600; color:var(--brass); margin-bottom:1.1rem;
}
.practice h3{ margin:0 0 .9rem; }
.practice > article > p{ color:var(--on-ink-mute); font-size:.94rem; margin:0 0 1.5rem; max-width:46ch; }
.practice ul{ list-style:none; margin:0; padding:0; }
.practice li{
  font-size:.87rem; color:var(--on-ink);
  padding:8px 0 8px 20px; position:relative;
  border-top:1px solid rgba(233,228,216,.07);
}
.practice li::before{
  content:""; position:absolute; left:0; top:1.15em;
  width:8px; height:1px; background:var(--brass);
}

/* ---------------- ledger ---------------- */

.register{ border-top:1px solid var(--rule); padding:clamp(26px,3vw,38px) 0 0; }
.register-head{
  display:flex; flex-wrap:wrap; gap:12px 44px;
  align-items:baseline; justify-content:space-between;
  margin-bottom:clamp(16px,2vw,26px);
}
.register-head .label{ color:var(--brass); }
.register-head p{ margin:0; font-size:.86rem; color:var(--on-ink-mute); max-width:52ch; }
.ledger{ list-style:none; margin:0; padding:0; }
.ledger li{
  display:grid; grid-template-columns:minmax(150px,190px) 1fr;
  gap:8px 34px; padding:22px 0; align-items:baseline;
  border-top:1px solid var(--rule-soft);
}
.ledger li:first-child{ border-top:0; }
.ledger .cat{
  font-size:.63rem; letter-spacing:.18em; text-transform:uppercase;
  color:var(--on-ink-mute); font-weight:600;
}
.ledger .entry{ margin:0; }
.ledger .entry p{ font-size:.96rem; line-height:1.6; color:var(--on-ink); margin:0; max-width:52ch; }
.ledger .entry p.q{
  font-family:var(--display); font-style:italic; font-weight:300;
  font-size:1.02rem; line-height:1.45; color:var(--brass-lift);
  margin-top:.5rem; padding-left:16px;
  border-left:1px solid rgba(169,138,82,.4);
}

/* ---------------- pledge / tenets ---------------- */

.confid{
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);
  gap:clamp(40px,6vw,96px); align-items:start;
}
.pull{
  font-family:var(--display); font-weight:300;
  font-size:clamp(1.55rem,2.7vw,2.25rem); line-height:1.26;
  color:var(--on-ink); margin:0 0 1.5rem; max-width:22ch;
}
.pull em{ font-style:italic; color:var(--brass-lift); }
.pledge{ list-style:none; margin:0; padding:0; }
.pledge li{
  border-top:1px solid var(--rule);
  padding:24px 0; display:grid; grid-template-columns:auto 1fr; gap:24px;
}
.pledge .mark{
  font-family:var(--display); font-style:italic; font-size:1.15rem;
  color:var(--brass-lift); line-height:1.5; min-width:2.4ch;
}
.pledge strong{
  display:block; font-family:var(--body); font-weight:600;
  font-size:.98rem; margin-bottom:.4rem; color:var(--on-ink);
}
.pledge span.body{ display:block; font-size:.93rem; color:var(--on-ink-mute); }

/* ---------------- process steps ---------------- */

.steps{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(24px,3vw,46px); }
.steps > div{ border-top:1px solid var(--rule); padding-top:24px; }
.steps .num{
  font-family:var(--display); font-style:italic; font-size:1.1rem;
  color:var(--brass); display:block; margin-bottom:1rem;
}
.steps h3{
  font-family:var(--body); font-weight:600; font-size:1rem;
  margin:0 0 .7rem; color:var(--on-ink);
}
.steps p{ margin:0; font-size:.9rem; color:var(--on-ink-mute); }

/* ---------------- bio ---------------- */

.mast-grid{
  display:grid; grid-template-columns:minmax(0,320px) minmax(0,1fr);
  gap:clamp(34px,5vw,72px); align-items:start;
}
.portrait{ position:relative; border:1px solid var(--rule); padding:10px; background:var(--ink-card); }
.portrait img{
  width:100%; height:auto; display:block;
  filter:grayscale(100%) contrast(1.04) brightness(.97);
  transition:filter .6s ease;
}
.portrait:hover img{ filter:grayscale(55%) contrast(1.02) brightness(1); }
.portrait::after{
  content:""; position:absolute; inset:0;
  border:1px solid rgba(169,138,82,.28);
  pointer-events:none; transform:translate(9px,9px);
}
.mast-name{
  font-family:var(--display); font-weight:300;
  font-size:clamp(2.1rem,4.4vw,3.4rem); line-height:1.06;
  letter-spacing:-.014em; color:var(--on-ink); margin:0 0 .5rem;
}
.mast-role{
  font-size:.7rem; letter-spacing:.2em; text-transform:uppercase;
  font-weight:600; color:var(--brass); margin:0 0 1.8rem;
}
.mast-contact{ display:flex; flex-wrap:wrap; gap:12px; margin-top:2rem; }

.approach{
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:clamp(36px,5vw,80px); align-items:start;
}
.prose{ max-width:64ch; }
.prose p{ margin:0 0 1.5rem; color:var(--on-ink); font-size:1.02rem; }
.prose p:last-child{ margin-bottom:0; }
.prose .first{ font-size:1.12rem; }
.aside-quote{
  font-family:var(--display); font-weight:300; font-style:italic;
  font-size:clamp(1.3rem,2.2vw,1.8rem); line-height:1.32;
  color:var(--brass-lift); margin:0;
  padding-left:22px; border-left:1px solid rgba(169,138,82,.45);
  max-width:24ch;
}
.creds{ list-style:none; margin:0; padding:0; }
.creds li{
  border-top:1px solid var(--rule); padding:20px 0;
  display:grid; grid-template-columns:minmax(130px,170px) 1fr;
  gap:6px 30px; align-items:baseline;
}
.creds .k{
  font-size:.63rem; letter-spacing:.18em; text-transform:uppercase;
  color:var(--on-ink-mute); font-weight:600;
}
.creds .v{ font-size:.98rem; color:var(--on-ink); margin:0; }
.creds .v small{ display:block; font-size:.85rem; color:var(--on-ink-mute); margin-top:.2rem; }

/* ---------------- contact ---------------- */

.inquire{
  display:grid; grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);
  gap:clamp(40px,6vw,92px); align-items:start;
}
.contact-list{ margin:2.2rem 0 0; padding:0; list-style:none; }
.contact-list li{ border-top:1px solid var(--rule); padding:17px 0; }
.contact-list .label{ color:var(--on-ink-mute); display:block; margin-bottom:.45rem; }
.contact-list a{ color:var(--on-ink); text-decoration:none; border-bottom:1px solid var(--brass); padding-bottom:2px; }
.contact-list a:hover{ color:var(--brass-lift); }
.contact-list span.val{ color:var(--on-ink); }

form{ margin:0; }
.field{ margin-bottom:20px; }
.field label{
  display:block; font-size:.63rem; letter-spacing:.19em; text-transform:uppercase;
  color:var(--on-ink-mute); margin-bottom:9px; font-weight:600;
}
.field input, .field select, .field textarea{
  width:100%; background:rgba(233,228,216,.05);
  border:1px solid var(--rule); border-radius:0;
  color:var(--on-ink); font-family:var(--body);
  font-size:.97rem; font-weight:300; padding:13px 14px;
  transition:border-color .3s ease, background .3s ease;
  -webkit-appearance:none; appearance:none;
}
.field select{
  background-image:linear-gradient(45deg,transparent 50%,var(--brass) 50%),linear-gradient(135deg,var(--brass) 50%,transparent 50%);
  background-position:calc(100% - 20px) 50%, calc(100% - 14px) 50%;
  background-size:6px 6px, 6px 6px; background-repeat:no-repeat;
}
.field select option{ background:var(--ink-floor); color:var(--on-ink); }
.field textarea{ min-height:132px; resize:vertical; }
.field input:focus,.field select:focus,.field textarea:focus{
  border-color:var(--brass); background:rgba(233,228,216,.08); outline:none;
}
.field-row{ display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.note{
  font-size:.8rem; color:var(--on-ink-mute);
  border-left:1px solid var(--brass); padding-left:15px;
  margin:0 0 26px; max-width:54ch;
}
.form-status{ font-size:.85rem; color:var(--brass-lift); margin-top:16px; min-height:1.2em; }

/* ---------------- next-page link ---------------- */

.next{
  border-top:1px solid var(--rule); margin-top:clamp(56px,7vw,96px); padding-top:30px;
  display:flex; flex-wrap:wrap; gap:16px 40px; align-items:baseline; justify-content:space-between;
}
.next .label{ color:var(--on-ink-mute); }
.next a{
  font-family:var(--display); font-size:clamp(1.2rem,2vw,1.6rem);
  color:var(--on-ink); text-decoration:none; font-weight:300;
  transition:color .3s ease;
}
.next a:hover{ color:var(--brass-lift); }

/* ---------------- footer ---------------- */

footer{ background:var(--ink-floor); padding:clamp(56px,6vw,80px) 0 42px; }
.foot-top{
  display:flex; flex-wrap:wrap; gap:28px 48px;
  justify-content:space-between; align-items:flex-start;
  padding-bottom:36px; border-bottom:1px solid var(--rule);
}
.foot-nav{ display:flex; flex-wrap:wrap; gap:26px; }
.foot-nav a{
  color:var(--on-ink-mute); text-decoration:none;
  font-size:.71rem; letter-spacing:.15em; text-transform:uppercase; font-weight:500;
}
.foot-nav a:hover{ color:var(--on-ink); }
.legal{ margin-top:34px; }
.legal p{ font-size:.75rem; line-height:1.75; color:var(--on-ink-soft); margin:0 0 12px; max-width:94ch; }
.legal strong{ color:var(--on-ink-mute); font-weight:600; }

/* ---------------- motion ---------------- */

.rv{ opacity:0; transform:translateY(20px); }
.rv.in{ opacity:1; transform:none;
  transition:opacity .9s cubic-bezier(.19,1,.22,1), transform .9s cubic-bezier(.19,1,.22,1); }
.rise{ opacity:0; transform:translateY(18px); }
.loaded .rise{ opacity:1; transform:none;
  transition:opacity .9s cubic-bezier(.19,1,.22,1), transform .9s cubic-bezier(.19,1,.22,1); }
.loaded .d1{ transition-delay:.05s; }
.loaded .d2{ transition-delay:.16s; }
.loaded .d3{ transition-delay:.27s; }
.loaded .d4{ transition-delay:.38s; }
.loaded .d5{ transition-delay:.49s; }

/* ---------------- responsive ---------------- */

@media (max-width:1120px){
  nav.links a{ padding:9px 11px; font-size:.68rem; letter-spacing:.11em; }
}
@media (max-width:1020px){
  .practice{ grid-template-columns:1fr; }
  .confid,.inquire,.approach{ grid-template-columns:1fr; }
  .steps{ grid-template-columns:repeat(2,1fr); }
  .aside-quote{ max-width:42ch; }
}
@media (max-width:900px){
  .burger{ display:block; }
  .bar > .btn{ display:none; }
  nav.links{
    position:fixed; inset:0 0 0 auto; width:min(340px,86vw);
    background:var(--ink-floor); border-left:1px solid var(--rule);
    flex-direction:column; align-items:flex-start; justify-content:center;
    gap:6px; padding:40px var(--gut);
    transform:translateX(100%); transition:transform .45s cubic-bezier(.19,1,.22,1);
    z-index:70;
  }
  body.menu-open nav.links{ transform:translateX(0); }
  nav.links a{ font-size:.95rem; letter-spacing:.1em; padding:14px 0; width:100%; }
  nav.links a::after{ left:0; right:auto; width:26px; }
  .mast-grid{ grid-template-columns:1fr; }
  .portrait{ max-width:290px; }
}
@media (max-width:760px){
  .brand .sub{ font-size:.5rem; letter-spacing:.15em; }
  .brand .corp{ font-size:.45rem; letter-spacing:.12em; }
  .steps{ grid-template-columns:1fr; }
  .ledger li{ grid-template-columns:1fr; gap:6px; }
  .creds li{ grid-template-columns:1fr; gap:4px; }
  .field-row{ grid-template-columns:1fr; }
  .foot-top{ flex-direction:column; }
}
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:.001ms !important; transition-duration:.001ms !important; }
  .rise,.rv{ opacity:1; transform:none; }
}
@media print{ header,.next{ display:none; } body{ background:#fff; color:#000; } }

/* ============================================================
   CONSENT BLOCK — added for the homepage inquiry form
   ============================================================ */

.consent{
  border-top:1px solid var(--rule);
  margin-top:30px; padding-top:24px;
}
.consent > .label{
  color:var(--on-ink-mute); display:block; margin-bottom:16px;
}
.check{
  display:grid; grid-template-columns:auto 1fr; gap:14px;
  align-items:start; margin-bottom:18px; cursor:pointer;
}
.check input[type="checkbox"]{
  appearance:none; -webkit-appearance:none;
  width:19px; height:19px; margin:2px 0 0;
  border:1px solid var(--brass); background:transparent;
  cursor:pointer; position:relative; flex:none;
  transition:background .2s ease;
}
.check input[type="checkbox"]:checked{ background:var(--brass); }
.check input[type="checkbox"]:checked::after{
  content:""; position:absolute; left:6px; top:2px;
  width:5px; height:10px;
  border:solid var(--ink); border-width:0 1.5px 1.5px 0;
  transform:rotate(45deg);
}
.check input[type="checkbox"]:focus-visible{ outline:2px solid var(--brass-lift); outline-offset:2px; }
.check span{
  font-size:.82rem; line-height:1.58; color:var(--on-ink-mute);
}
.check span strong{ color:var(--on-ink); font-weight:500; }
.check a{ color:var(--brass-lift); }

.consent-foot{
  font-size:.72rem; line-height:1.6; color:var(--on-ink-soft);
  margin:18px 0 0; max-width:62ch;
}

.home-form{
  display:grid; grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);
  gap:clamp(36px,5vw,84px); align-items:start;
}
@media (max-width:1020px){ .home-form{ grid-template-columns:1fr; } }
