/* =========================================================================
   DHS — "The Capabilities Brief"  ·  section compositions
   ========================================================================= */

/* ======================================================= §01 POSITION */
.pos-quote{
  grid-column:1/9; padding:clamp(54px,6.5vw,96px) var(--pad);
}
.pos-quote blockquote{
  margin:0; font-family:var(--serif); font-weight:400;
  font-size:clamp(30px,3.8vw,56px); line-height:1.02; letter-spacing:-.018em; color:var(--ink);
}
.pos-quote blockquote em{ font-style:italic; color:var(--accent); }
.pos-quote .pq-sub{ margin-top:26px; max-width:50ch; }
.pos-notes{
  grid-column:10/13; margin:clamp(54px,6.5vw,96px) var(--pad);
  padding-left:clamp(20px,2.4vw,36px); border-left:1px solid var(--line);
  display:flex; flex-direction:column; align-self:start;
}
.pos-note{
  border-top:1px solid var(--line); padding:14px 0 20px;
  font-family:var(--mono); font-size:11.5px; line-height:1.7; letter-spacing:.04em;
  color:var(--ink-soft);
}
.pos-note:first-child{ border-top:0; padding-top:0; }
.pos-note b{ display:block; color:var(--ink); font-weight:500; margin-bottom:4px;
  letter-spacing:.12em; text-transform:uppercase; font-size:10.5px; }

/* ================================================ §02 INFRASTRUCTURE */
.infra-wrap{ align-items:start; }
.infra-side{
  grid-column:1/4; padding:clamp(44px,5vw,72px) var(--pad);
  position:sticky; top:calc(var(--bar) + 0px); align-self:start;
}
.infra-side .t-sec{ margin-top:18px; max-width:9ch; }
.infra-side .t-body{ margin-top:22px; max-width:30ch; }
.infra-list{ grid-column:4/13; --divx: calc(var(--pad) + 105px); }
.ix-row{
  display:grid; grid-template-columns:90px 1.05fr 1fr; gap:0 30px; align-items:start;
  padding:clamp(30px,3.4vw,46px) var(--pad);
  position:relative; cursor:default;
  transition:background .35s var(--ease), color .35s var(--ease);
}
.ix-row::before{
  content:''; position:absolute; left:var(--divx); top:0; bottom:0;
  width:1px; background:var(--line); transition:background .35s var(--ease);
}
.ix-row::after{
  content:''; position:absolute; bottom:0; left:0; right:0; height:1px;
  background:linear-gradient(to right, transparent 0%, var(--line) var(--divx));
  pointer-events:none; transition:background .35s var(--ease);
}
.ix-row:hover::before{ background:var(--line-on-dark); }
.ix-row:hover::after{ background:linear-gradient(to right, transparent 0%, var(--line-on-dark) var(--divx)); }
.ix-row:first-child{
  border-top:1px solid;
  border-image:linear-gradient(to right, transparent 0%, var(--line) var(--divx), var(--line) 100%) 1;
  margin-top:clamp(44px,5vw,72px);
}
.ix-row .ix-no{ font-family:var(--mono); font-size:12px; letter-spacing:.08em; color:var(--accent); padding-top:10px; }
.ix-row .ix-name{ font-family:var(--serif); font-size:clamp(26px,2.6vw,40px); font-weight:420; letter-spacing:-.015em; line-height:1.04; }
.ix-row .ix-meta{ display:flex; flex-wrap:wrap; gap:7px; margin-top:16px; }
.ix-row .ix-copy{ font-size:15.5px; line-height:1.6; color:var(--ink-2); padding-top:8px; }
.ix-row:hover{ background:linear-gradient(90deg, rgba(7,41,58,0) 0% calc(var(--divx) - 80px), rgba(7,41,58,.03) calc(var(--divx) - 50px), rgba(7,41,58,.10) calc(var(--divx) - 16px), rgba(7,41,58,.16) var(--divx), var(--petrol) var(--divx) 100%); }
.ix-row:hover::before{ background:var(--line-on-dark); }
.ix-row:hover .ix-name{ color:#fff; }
.ix-row:hover .ix-copy{ color:var(--soft-on-dark); }
.ix-row:hover .tagchip{ color:var(--soft-on-dark); border-color:var(--line-on-dark); }
@media(max-width:1100px){ .ix-row{ grid-template-columns:64px 1fr; } .ix-row .ix-copy{ grid-column:2; } }
@media(max-width:860px){
  .infra-side{ position:static; padding-bottom:0; }
  .ix-row{ border-left:0; }
  .ix-row:first-child{ margin-top:34px; }
}

.tagchip{
  font-family:var(--mono); font-size:10.5px; letter-spacing:.07em; text-transform:uppercase;
  color:var(--ink-soft); border:1px solid var(--line); padding:5px 9px; white-space:nowrap;
  transition:color .3s, border-color .3s;
}

/* ================================================ §03 INTELLIGENCE */
.intel-head{ padding:clamp(48px,5.5vw,84px) 0 0; }
.intel-head .ih-l{ grid-column:1/8; padding:0 var(--pad); }
.intel-head .ih-l .t-sec{ color:#fff; margin-top:18px; max-width:16ch; }
.intel-head .ih-r{ grid-column:8/13; padding:0 var(--pad); align-self:end; }
.intel-head .ih-r .t-lede{ max-width:40ch; }

.intel-body{ padding:clamp(32px,3.6vw,52px) 0 0; align-items:start; }
@media(max-width:860px){ .intel-body{ padding-bottom:clamp(40px,6vw,60px); } }
.figrail{
  grid-column:1/3; padding:8px var(--pad); position:sticky; top:calc(var(--bar) + 24px);
  display:flex; flex-direction:column; gap:0;
}
.figrail .fr{
  border-top:1px solid var(--line-on-dark); padding:13px 0 18px;
  font-family:var(--mono); font-size:10.5px; line-height:1.65; letter-spacing:.06em;
  color:var(--soft-on-dark); text-transform:uppercase;
}
.figrail .fr b{ color:var(--accent-soft); font-weight:500; display:block; }
@media(max-width:860px){ .figrail{ position:static; flex-direction:row; flex-wrap:wrap; gap:18px; } .figrail .fr{ border-top:0; } }

.console{
  grid-column:3/13; margin:0 var(--pad) -96px;
  border:1px solid var(--line-on-dark);
  background:linear-gradient(180deg, #0B3D55, #093043);
  box-shadow:0 60px 120px -60px rgba(0,0,0,.75);
  position:relative; z-index:2;
}
.console-foot{
  margin:0; padding:11px 18px; border-top:1px solid var(--line-on-dark);
  font-family:var(--mono); font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:var(--soft-on-dark);
}
@media(max-width:860px){ .console{ margin-bottom:0; } }
.console-bar{
  display:flex; align-items:center; gap:14px; padding:12px 18px;
  border-bottom:1px solid var(--line-on-dark); white-space:nowrap;
  font-family:var(--mono); font-size:11.5px; letter-spacing:.06em; color:var(--soft-on-dark);
}
.console-bar .dot{ width:8px; height:8px; border-radius:50%; background:var(--line-on-dark); flex:none; }
.console-bar .seg{ margin-left:auto; display:flex; border:1px solid var(--line-on-dark); overflow:hidden; }
.console-bar .seg span{ padding:5px 12px; font-size:10.5px; white-space:nowrap; }
.console-bar .seg span.on{ background:var(--paper-on-dark); color:var(--petrol-deep); }
@media(max-width:700px){ .console-bar .seg{ display:none; } }

.console-grid{ display:grid; grid-template-columns:1fr; gap:1px; background:var(--line-on-dark); }
@media(min-width:760px){ .console-grid{ grid-template-columns:1.55fr 1fr 1fr; } }
.panel{ background:#0B3D55; padding:20px 20px 22px; display:flex; flex-direction:column; min-height:190px; }
.panel.span-tall{ grid-row:span 2; }
.panel.span-wide{ grid-column:span 2; }
@media(max-width:759px){ .panel.span-tall, .panel.span-wide{ grid-row:auto; grid-column:auto; } }
.p-top{ display:flex; justify-content:space-between; align-items:baseline; gap:14px; }
.p-title{ font-family:var(--mono); font-size:11px; letter-spacing:.13em; text-transform:uppercase; color:var(--soft-on-dark); line-height:1.5; }
.p-delta{ font-family:var(--mono); font-size:11px; color:var(--accent-soft); white-space:nowrap; }
.p-delta.pos{ color:#7FC9A3; }
.p-val{ font-family:var(--serif); font-size:clamp(30px,2.6vw,40px); font-weight:480; line-height:1; color:#fff; margin-top:10px; }

.vol-sub{ display:flex; gap:34px; margin-top:22px; }
.vol-sub .vs b{ font-family:var(--serif); font-size:22px; font-weight:500; color:var(--paper-on-dark); display:block; line-height:1.1; }
.vol-sub .vs span{ font-family:var(--mono); font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:var(--soft-on-dark); }

.bars{ display:flex; align-items:flex-end; gap:6px; height:110px; margin-top:auto; padding-top:24px; }
.bars .bar{ flex:1; background:linear-gradient(180deg,var(--haze),rgba(94,133,151,.22)); height:var(--h,20%);
  transition:height 1s var(--ease); }
.bars .bar.hot{ background:linear-gradient(180deg,var(--accent),rgba(190,106,56,.25)); }
.legend{ display:flex; gap:18px; margin-top:13px; font-family:var(--mono); font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:var(--soft-on-dark); }
.legend i{ width:9px; height:9px; display:inline-block; margin-right:7px; }

.spark-wrap{ margin-top:auto; padding-top:16px; }
.heat{ display:grid; grid-template-columns:repeat(7,1fr); gap:4px; margin-top:auto; padding-top:16px; }
.heat .cell{ aspect-ratio:1.25; background:var(--c,rgba(94,133,151,.16)); }
.heat-x{ display:grid; grid-template-columns:repeat(7,1fr); gap:4px; margin-top:7px;
  font-family:var(--mono); font-size:8.5px; letter-spacing:.03em; color:var(--soft-on-dark); text-align:center; text-transform:uppercase; }

.miles{ margin-top:14px; display:flex; flex-direction:column; }
.mile{ display:grid; grid-template-columns:auto 1fr auto; gap:14px; align-items:center; padding:10px 0;
  border-top:1px solid var(--line-on-dark); font-size:13.5px; color:var(--paper-on-dark); }
.mile:first-child{ border-top:0; }
.mile .mk{ width:8px; height:8px; border-radius:50%; background:var(--haze); }
.mile .mk.done{ background:#7FC9A3; }
.mile .mk.now{ background:var(--accent); box-shadow:0 0 0 4px rgba(190,106,56,.22); }
.mile .mt{ font-family:var(--mono); font-size:10.5px; color:var(--soft-on-dark); text-transform:uppercase; letter-spacing:.06em; white-space:nowrap; }

.intel-note{ grid-column:3/13; padding:16px var(--pad) 0; font-family:var(--mono); font-size:10.5px;
  letter-spacing:.1em; text-transform:uppercase; color:var(--soft-on-dark); }

/* ================================================ §04 COMPLEX CLAIMS */
.cx-wrap{ align-items:start; padding-top:clamp(140px,15vw,186px); }
.cx-stick{
  grid-column:1/6; position:sticky; top:calc(var(--bar) + 56px); align-self:start;
  margin:0 var(--pad);
  background:var(--petrol); color:var(--paper-on-dark); padding:clamp(28px,3vw,44px);
}
.cx-stick .t-med{ color:#fff; margin-top:16px; }
.cx-stick p{ color:var(--soft-on-dark); font-size:15.5px; line-height:1.6; margin:16px 0 0; }
.cx-stick .cx-tags{ margin-top:26px; padding-top:22px; border-top:1px solid var(--line-on-dark);
  display:flex; flex-wrap:wrap; gap:8px; }
.cx-stick .tagchip{ color:var(--soft-on-dark); border-color:var(--line-on-dark); }
.cx-flow{ grid-column:6/13; padding:0 0 clamp(44px,5vw,72px); }
.cx-head{ padding:0 var(--pad) 26px; }
.cx-head .t-sec{ white-space:nowrap; margin-top:18px; }
.exp-item{
  display:grid; grid-template-columns:88px 1fr; gap:24px; align-items:baseline;
  border-top:1px solid var(--line); padding:clamp(24px,2.6vw,36px) var(--pad);
}
.exp-item:last-of-type{ border-bottom:1px solid var(--line); }
.exp-item .ei-no{ font-family:var(--serif); font-size:clamp(28px,2.6vw,40px); font-weight:340; color:var(--ink-soft); font-style:italic; }
.exp-item .ei-k{ font-family:var(--serif); font-size:clamp(22px,2.2vw,30px); font-weight:440; letter-spacing:-.01em; }
.exp-item .ei-d{ color:var(--ink-soft); font-size:15px; margin-top:6px; max-width:52ch; }
.exp-out{
  margin:0 var(--pad); padding:24px 0 0;
  font-family:var(--mono); font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--accent);
  display:flex; align-items:center; gap:14px;
}
.exp-out::after{ content:""; flex:1; height:1px; background:var(--line); }
@media(max-width:860px){ .cx-stick{ position:static; margin-bottom:0; } .cx-flow{ padding-top:34px; } .cx-wrap{ padding-top:44px; } }

/* ==================================================== §05 COVERAGE */
.cov-head{ padding:clamp(20px,2.4vw,36px) 0 clamp(26px,3vw,44px); }
.cov-head .ch-l{ grid-column:1/8; padding:0 var(--pad); }
.cov-head .ch-l .t-sec{ margin-top:18px; white-space:nowrap; }
.cov-head .ch-r{ grid-column:8/13; padding:0 var(--pad); align-self:end; }
.cov-head .ch-r .t-lede{ max-width:38ch; }

.ind-table{ border-top:1px solid var(--line); }
.ind-thead{
  display:grid; grid-template-columns:90px 1fr 1.3fr 220px; gap:0 30px;
  padding:10px var(--pad); border-bottom:1px solid var(--line);
  font-family:var(--mono); font-size:10px; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-soft);
}
.ind-row{
  display:grid; grid-template-columns:90px 1fr 1.3fr 220px; gap:0 30px; align-items:center;
  padding:clamp(18px,2vw,26px) var(--pad); border-bottom:1px solid var(--line);
  transition:background .3s var(--ease);
}
.ind-row:hover{ background:var(--paper-card); }
.ind-row .in-no{ font-family:var(--mono); font-size:11.5px; color:var(--ink-soft); }
.ind-row .in-name{ font-family:var(--serif); font-size:clamp(22px,2.2vw,30px); font-weight:440; letter-spacing:-.012em; }
.ind-row .in-risk{ font-size:14.5px; color:var(--ink-soft); line-height:1.5; max-width:54ch; }
.ind-row svg{ display:block; width:100%; height:44px; }
.ind-row .spk-line{ fill:none; stroke:var(--petrol); stroke-width:1.5; }
.ind-row .spk-fill{ fill:rgba(11,61,85,.07); }
.ind-row .spk-dot{ fill:var(--accent); }
@media(max-width:1000px){
  .ind-thead{ display:none; }
  .ind-row{ grid-template-columns:56px 1fr; grid-template-rows:auto auto auto; }
  .ind-row .in-risk{ grid-column:2; }
  .ind-row svg{ grid-column:2; max-width:240px; }
}

/* services appendix */
.svc-head{ padding:clamp(44px,5vw,72px) var(--pad) 22px; }
.svc-grid{ border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.svc-cell{
  grid-column:span 4; padding:26px var(--pad) 30px; border-right:1px solid var(--line);
  border-bottom:1px solid var(--line); display:flex; flex-direction:column; gap:8px;
}
.svc-cell:nth-child(3n){ border-right:0; }
.svc-cell:nth-last-child(-n+3){ border-bottom:0; }
.svc-cell .sv-no{ font-family:var(--mono); font-size:10.5px; letter-spacing:.1em; color:var(--accent); }
.svc-cell .sv-name{ font-family:var(--serif); font-size:23px; font-weight:450; letter-spacing:-.01em; margin-top:4px; }
.svc-cell .sv-copy{ font-size:14.5px; color:var(--ink-soft); line-height:1.55; }
@media(max-width:860px){
  .svc-cell{ border-right:0 !important; border-bottom:1px solid var(--line) !important; }
  .svc-cell:last-child{ border-bottom:0 !important; }
}

/* ======================================================= §06 TEAM */
.team-head{ padding:clamp(20px,2.4vw,36px) 0 clamp(28px,3vw,44px); }
.team-head .th-l{ grid-column:1/8; padding:0 var(--pad); }
.team-head .th-l .t-sec{ margin-top:18px; max-width:13ch; }
.team-head .th-r{ grid-column:8/13; padding:0 var(--pad); align-self:end; }
.team-head .th-r .t-lede{ max-width:38ch; }

/* roster rows — compact editorial entries, lines bounded by each row */
.team-roster{ border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.member{
  grid-column:span 6;
  display:grid; grid-template-columns:clamp(132px,13vw,180px) 1fr; gap:0 clamp(20px,2.2vw,30px);
  align-items:start; padding:clamp(24px,2.6vw,36px) var(--pad);
  border-bottom:1px solid var(--line);
}
.member:nth-child(even){ border-left:1px solid var(--line); }
.member:nth-last-child(-n+2){ border-bottom:0; }
.member .duo{ aspect-ratio:1/1.08; border:1px solid var(--line); }
.member .m-role{ font-family:var(--mono); font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--accent); }
.member .m-name{ font-family:var(--serif); font-weight:450; letter-spacing:-.012em; line-height:1.05; margin-top:8px;
  font-size:clamp(22px,1.9vw,28px); }
.member .m-focus{ color:var(--ink-2); font-size:14.5px; line-height:1.55; margin-top:10px; max-width:46ch; }
.member .m-tags{ display:flex; flex-wrap:wrap; gap:6px; margin-top:14px; }
.member .m-tags .tagchip{ font-size:10px; padding:4px 8px; }
@media(max-width:860px){
  .member{ grid-template-columns:120px 1fr; }
  .member:nth-child(even){ border-left:0; }
  .member:nth-last-child(-n+2){ border-bottom:1px solid var(--line); }
  .member:last-child{ border-bottom:0; }
}

/* ==================================================== §07 IMPACT — paper panel overlapping the dark closing sheet */
.impact-panel{
  margin:clamp(22px,2.6vw,40px) var(--pad) -88px;
  border:1px solid var(--line); background:var(--paper-card);
  position:relative; z-index:2;
  box-shadow:0 36px 80px -48px rgba(11,61,85,.35);
}
.impact-band{ padding:clamp(34px,3.6vw,52px) 0 clamp(26px,2.8vw,40px); }
.imp-cell{
  grid-column:span 3; padding:6px var(--pad) 22px;
  border-right:1px solid var(--line); display:flex; flex-direction:column; gap:12px;
}
.imp-cell:last-child{ border-right:0; }
.imp-cell .iv{ font-family:var(--serif); font-weight:380; line-height:.9; letter-spacing:-.025em;
  font-size:clamp(56px,5.6vw,96px); color:var(--ink); }
.imp-cell .iv .suf{ color:var(--accent); }
.imp-cell .il{ font-weight:600; font-size:15px; color:var(--ink); }
.imp-cell .inote{ font-family:var(--mono); font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-soft); }
@media(max-width:860px){ .imp-cell{ border-right:0; border-top:1px solid var(--line); padding-top:22px; } .impact-panel{ margin-bottom:0; } }

.recog-strip{ border-top:1px solid var(--line); }
.recog-strip .rs-in{ display:flex; flex-wrap:wrap; align-items:center; gap:clamp(26px,4.5vw,64px);
  padding:24px var(--pad) 28px; }
.recog-strip .rs-label{ font-family:var(--mono); font-size:10px; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-soft); }
.recog-strip .rg{ font-family:var(--serif); font-size:clamp(17px,1.7vw,23px); font-weight:460; color:var(--ink); opacity:.72; white-space:nowrap; }

/* ==================================================== §08 CONTACT */
.ct-top{ padding:clamp(150px,16vw,220px) 0 clamp(40px,4.4vw,64px); }
@media(max-width:860px){ .ct-top{ padding-top:clamp(60px,8vw,90px); } }
.ct-top .ct-h{ grid-column:1/11; padding:0 var(--pad); }
.ct-top .ct-h .t-display{ color:#fff; max-width:13ch; }
.ct-top .ct-h .t-display em{ color:var(--accent-soft); }
.ct-top .ct-sub{ grid-column:1/8; padding:26px var(--pad) 0; }
.ct-top .ct-sub .t-lede{ max-width:48ch; }
.ct-actions{ grid-column:1/9; padding:34px var(--pad) 0; display:flex; flex-wrap:wrap; gap:12px; }

.ct-cells{ border-top:1px solid var(--line-on-dark); }
.ct-cell{
  grid-column:span 4; padding:28px var(--pad) 40px; border-right:1px solid var(--line-on-dark);
  display:flex; flex-direction:column; gap:8px;
}
.ct-cell:last-child{ border-right:0; }
.ct-cell h4{ font-family:var(--mono); font-size:10.5px; letter-spacing:.16em; text-transform:uppercase;
  color:var(--soft-on-dark); font-weight:500; margin:0 0 10px; }
.ct-cell .cc-big{ font-family:var(--serif); font-size:clamp(20px,1.9vw,26px); font-weight:440; color:#fff; line-height:1.25; }
.ct-cell p{ margin:0; color:var(--soft-on-dark); font-size:14.5px; line-height:1.65; }
.ct-cell a.cc-big{ border-bottom:1px solid var(--line-on-dark); padding-bottom:2px; width:max-content;
  transition:border-color .25s; }
.ct-cell a.cc-big:hover{ border-color:var(--accent-soft); }
@media(max-width:860px){ .ct-cell{ border-right:0; border-top:1px solid var(--line-on-dark); } }

.endfolio{ border-top:1px solid var(--line-on-dark); }

/* ================================================== §02 METHODOLOGY */
.meth-head{ padding:clamp(44px,5vw,72px) 0 0; }
.mh-l{ grid-column:1/8; padding:0 var(--pad); }
.mh-l .t-lede{ margin-top:clamp(14px,1.6vw,22px); }
.mh-r{ grid-column:8/13; padding:0 var(--pad); align-self:stretch; position:relative; }
.meth-bear{
  position:absolute; bottom:20px; left:var(--pad);
  width:clamp(320px,36vw,540px); height:auto;
  object-fit:contain; object-position:left bottom;
  z-index:2;
}

.meth-grid{ margin-top:clamp(44px,5vw,72px); border-top:1px solid var(--line); }
.meth-item{
  grid-column:span 4;
  padding:clamp(28px,3vw,44px) var(--pad);
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.meth-item:last-child{ border-right:0; }

.meth-no{
  display:block;
  font-family:var(--mono); font-size:10.5px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--ink-soft); margin-bottom:clamp(16px,1.8vw,24px);
}
.meth-name{
  font-family:var(--serif); font-size:clamp(18px,1.6vw,24px); font-weight:400;
  letter-spacing:-.012em; color:var(--ink); margin-bottom:clamp(12px,1.2vw,18px);
  line-height:1.2;
}
.meth-item .t-body{ color:var(--ink-2); line-height:1.65; }

@media(max-width:860px){
  .mh-l, .mh-r{ grid-column:1/13; }
  .meth-item{ grid-column:1/13; border-right:0; }
  .meth-item:last-child{ border-bottom:0; }
}
