/* Hydraulic model calibration workflow — 2026-09-25 */
.cal-workflow-section{
  margin:82px 0 76px;
  padding-top:34px;
  border-top:1px solid var(--line);
}
.cal-workflow-kicker{
  margin:0 0 14px;
  color:var(--cyan);
  font-family:"JetBrains Mono",monospace;
  font-size:11px;
  font-weight:600;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.case-page .cal-workflow-section > h2{
  max-width:900px;
  margin:0 0 18px;
  padding:0;
  border:0;
  font-family:"Cabinet Grotesk",sans-serif;
  font-size:clamp(2rem,4.2vw,3.45rem);
  line-height:1.02;
  letter-spacing:-.03em;
  font-weight:800;
}
.cal-workflow-intro{
  max-width:790px;
  margin:0 0 42px;
  color:var(--muted);
  font-size:1.02rem;
  line-height:1.8;
}
.cal-workflow{
  position:relative;
}
.cal-workflow::before{
  content:"";
  position:absolute;
  left:50%;
  top:20px;
  bottom:20px;
  width:1px;
  transform:translateX(-50%);
  background:linear-gradient(180deg,transparent,var(--line) 4%,var(--line) 96%,transparent);
}
.cal-step{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1fr) 76px minmax(0,1fr);
  align-items:start;
  margin:0 0 20px;
}
.cal-step:nth-child(odd) .cal-card{grid-column:1;}
.cal-step:nth-child(even) .cal-card{grid-column:3;}
.cal-step .cal-node{grid-column:2;grid-row:1;}
.cal-node{
  width:48px;
  height:48px;
  margin-top:15px;
  place-self:start center;
  z-index:2;
  display:grid;
  place-items:center;
  border:1px solid color-mix(in srgb,var(--cyan) 45%,var(--line));
  border-radius:999px;
  background:var(--ink);
  color:var(--cyan);
  box-shadow:0 0 0 8px color-mix(in srgb,var(--cyan) 5%,transparent);
  font-family:"JetBrains Mono",monospace;
  font-size:11px;
  font-weight:700;
}
.cal-card{
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:14px;
  background:var(--card);
  transition:border-color .2s ease,transform .2s ease,box-shadow .2s ease;
}
.cal-card:hover{
  transform:translateY(-2px);
  border-color:color-mix(in srgb,var(--cyan) 36%,var(--line));
  box-shadow:0 18px 48px color-mix(in srgb,#000 18%,transparent);
}
.cal-card[open]{
  border-color:color-mix(in srgb,var(--cyan) 38%,var(--line));
}
.cal-card summary{
  list-style:none;
  cursor:pointer;
  display:grid;
  grid-template-columns:42px minmax(0,1fr) 22px;
  gap:14px;
  align-items:center;
  padding:20px 20px;
}
.cal-card summary::-webkit-details-marker{display:none;}
.cal-summary-num{
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border:1px solid color-mix(in srgb,var(--cyan) 35%,var(--line));
  border-radius:999px;
  background:color-mix(in srgb,var(--cyan) 8%,transparent);
  color:var(--cyan);
  font-family:"JetBrains Mono",monospace;
  font-size:11px;
  font-weight:700;
}
.cal-summary-title{
  display:block;
  margin-bottom:5px;
  color:var(--txt);
  font-family:"Cabinet Grotesk",sans-serif;
  font-size:1.08rem;
  line-height:1.15;
  font-weight:700;
}
.cal-summary-sub{
  display:block;
  color:var(--muted);
  font-size:.84rem;
  line-height:1.45;
}
.cal-plus{
  color:var(--cyan);
  font-family:"JetBrains Mono",monospace;
  font-size:20px;
  line-height:1;
  transition:transform .2s ease;
}
.cal-card[open] .cal-plus{transform:rotate(45deg);}
.cal-detail{
  padding:18px 20px 22px;
  border-top:1px solid var(--line);
  color:var(--muted);
  font-size:.95rem;
  line-height:1.72;
}
.cal-detail p{margin:0 0 13px;}
.cal-detail p:last-child{margin-bottom:0;}
.cal-detail ul{margin:8px 0 0;padding-left:20px;}
.cal-detail li{margin:7px 0;}
.cal-detail b,.cal-detail strong{color:var(--txt);}
.cal-tier{
  margin:12px 0 0;
  padding:14px 15px;
  border:1px solid var(--line);
  border-radius:10px;
  background:color-mix(in srgb,var(--card) 82%,var(--ink));
}
.cal-tier strong{
  display:block;
  margin-bottom:6px;
  color:var(--cyan);
  font-family:"JetBrains Mono",monospace;
  font-size:10px;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.cal-formula{
  margin:12px 0;
  padding:15px 16px;
  border:1px solid color-mix(in srgb,var(--cyan) 30%,var(--line));
  border-radius:10px;
  background:color-mix(in srgb,var(--cyan) 5%,var(--card));
  color:var(--txt);
  font-family:"JetBrains Mono",monospace;
  font-size:.9rem;
}
.cal-mini-flow{
  display:grid;
  grid-template-columns:1fr auto 1fr auto 1fr;
  gap:8px;
  align-items:center;
  margin:13px 0 0;
}
.cal-mini-box{
  min-height:70px;
  display:grid;
  place-items:center;
  padding:10px;
  text-align:center;
  border:1px solid var(--line);
  border-radius:10px;
  background:color-mix(in srgb,var(--card) 86%,var(--ink));
  color:var(--muted);
  font-size:.8rem;
  line-height:1.45;
}
.cal-mini-box b{display:block;color:var(--txt);}
.cal-arrow{color:var(--cyan);font-family:"JetBrains Mono",monospace;}
.cal-sequence{
  margin-top:14px;
  padding:13px 14px;
  border-left:2px solid var(--cyan);
  background:color-mix(in srgb,var(--cyan) 5%,transparent);
  color:var(--txt);
  font-size:.86rem;
  line-height:1.65;
}
.cal-case-metrics{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:9px;
  margin-top:13px;
}
.cal-case-metric{
  padding:12px;
  border:1px solid var(--line);
  border-radius:10px;
  background:color-mix(in srgb,var(--card) 86%,var(--ink));
}
.cal-case-metric strong{
  display:block;
  margin-bottom:4px;
  color:var(--cyan);
  font-family:"Cabinet Grotesk",sans-serif;
  font-size:1.25rem;
}
.cal-case-link{
  display:inline-flex;
  margin-top:14px;
  color:var(--cyan)!important;
  font-family:"JetBrains Mono",monospace;
  font-size:.8rem;
  letter-spacing:.03em;
  text-decoration:none;
}
@media(max-width:820px){
  .cal-workflow::before{left:23px;}
  .cal-step{grid-template-columns:46px minmax(0,1fr);margin-bottom:16px;}
  .cal-step:nth-child(n) .cal-node{grid-column:1;grid-row:1;}
  .cal-step:nth-child(n) .cal-card{grid-column:2;grid-row:1;}
  .cal-node{width:42px;height:42px;margin-top:14px;}
}
@media(max-width:540px){
  .cal-workflow-section{margin-top:66px;padding-top:28px;}
  .cal-workflow-intro{margin-bottom:30px;}
  .cal-workflow::before{left:19px;}
  .cal-step{grid-template-columns:38px minmax(0,1fr);}
  .cal-node{width:36px;height:36px;font-size:9px;}
  .cal-card summary{grid-template-columns:34px minmax(0,1fr) 18px;gap:10px;padding:16px 14px;}
  .cal-summary-num{width:32px;height:32px;font-size:9px;}
  .cal-summary-title{font-size:1rem;}
  .cal-summary-sub{font-size:.78rem;}
  .cal-detail{padding:16px 14px 18px;font-size:.9rem;}
  .cal-mini-flow{grid-template-columns:1fr;}
  .cal-arrow{transform:rotate(90deg);text-align:center;}
  .cal-case-metrics{grid-template-columns:1fr;}
}
