:root{
  --nodes-hero-max:860px;
  --nodes-copy-max:720px;
  --nodes-table-min:760px;
  --nodes-label-min:70px;
  --nodes-card-min:240px;
  --nodes-type-min:300px;
  --nodes-hero-copy-size:18px;
  --nodes-small-size:13px;
  --nodes-label-size:12px;
  --nodes-index-size:14px;
  --nodes-section-border:1px solid var(--color-border);
  --nodes-strong-border:1px solid var(--color-border-strong);
  --nodes-accent-border:1px solid var(--color-accent);
  --nodes-panel-gradient:linear-gradient(135deg,var(--color-gradient-blue),var(--color-gradient-lilac),var(--color-gradient-cream),var(--color-gradient-blossom));
}

.node-hero{
  position:relative;
  padding-top:clamp(74px,10vw,126px);
  padding-bottom:clamp(64px,9vw,110px);
  overflow-x:clip;
  border-bottom:var(--nodes-section-border);
}

.node-hero::before,
.node-hero::after{
  position:absolute;
  z-index:0;
  border-radius:var(--radius-xlarge);
  background:var(--color-panel-muted);
  content:"";
  pointer-events:none;
}

.node-hero::before{
  top:18%;
  left:max(-120px,calc(50% - 720px));
  width:220px;
  height:220px;
  transform:rotate(12deg);
}

.node-hero::after{
  right:max(-100px,calc(50% - 690px));
  bottom:12%;
  width:180px;
  height:180px;
  transform:rotate(-9deg);
}

.node-hero-inner{
  position:relative;
  z-index:1;
  max-width:var(--nodes-hero-max);
  text-align:center;
}

.node-hero h1{
  max-width:820px;
  margin:20px auto 18px;
}

.node-hero-copy{
  max-width:var(--nodes-copy-max);
  margin:0 auto;
  color:var(--color-text-muted);
  font-size:var(--nodes-hero-copy-size);
}

.node-facts{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:10px;
  margin-top:28px;
}

.node-facts span{
  display:inline-flex;
  align-items:center;
  min-height:38px;
  padding:7px 15px;
  border:var(--nodes-section-border);
  border-radius:var(--radius-pill);
  background:var(--color-panel);
  color:var(--color-text-muted);
  font-size:var(--nodes-small-size);
  box-shadow:var(--shadow-card);
}

.node-facts strong{
  margin-right:5px;
  color:var(--color-text);
}

.region-nav{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:8px;
  margin-bottom:30px;
}

.region-nav a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:76px;
  min-height:40px;
  padding:8px 18px;
  border:var(--nodes-section-border);
  border-radius:var(--radius-pill);
  background:var(--color-panel);
  color:var(--color-text-muted);
  font-size:var(--nodes-small-size);
  transition:color .2s var(--ease-standard),border-color .2s var(--ease-standard),transform .2s var(--ease-standard);
}

.region-nav a:hover{
  border-color:var(--color-text);
  color:var(--color-text);
  transform:translateY(-1px);
}

.route-callout{
  max-width:940px;
  margin:0 auto 24px;
}

.route-table-shell{
  border-radius:var(--radius-medium);
  box-shadow:var(--shadow-card);
}

.route-table{
  min-width:var(--nodes-table-min);
}

.route-table tbody tr:not(.route-group-row):hover td{
  background:var(--color-panel-muted);
}

.route-label,
.support-label{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:var(--nodes-label-min);
  max-width:100%;
  min-height:28px;
  padding:4px 10px;
  overflow:hidden;
  border-radius:var(--radius-pill);
  background:var(--color-panel-muted);
  color:var(--color-text-muted);
  font-size:var(--nodes-label-size);
  line-height:1.35;
  text-align:center;
}

.route-label-premium{
  background:var(--color-accent-soft);
  color:var(--color-accent-dark);
}

.route-label-direct{
  border:var(--nodes-section-border);
  background:var(--color-panel);
}

.support-label{
  background:var(--color-success-soft);
  color:var(--color-success);
}

.support-label-check{
  background:var(--color-panel-muted);
  color:var(--color-text-muted);
}

.table-note{
  max-width:920px;
  margin:20px auto 0;
  color:var(--color-text-muted);
  font-size:var(--nodes-small-size);
}

.section-muted{
  border-block:var(--nodes-section-border);
  background:var(--color-panel-muted);
}

.route-type-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:20px;
}

.route-type-card{
  display:flex;
  min-height:100%;
  flex-direction:column;
  padding:clamp(26px,4vw,42px);
  border:var(--nodes-section-border);
  border-radius:var(--radius-xlarge);
  background:var(--color-panel);
  box-shadow:var(--shadow-card);
  transition:transform .25s var(--ease-standard),box-shadow .25s var(--ease-standard);
}

.route-type-card:hover{
  transform:translateY(-3px);
  box-shadow:var(--shadow-window);
}

.route-type-card-wide{
  grid-column:1/-1;
  background:var(--nodes-panel-gradient);
}

.route-type-head{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin-bottom:18px;
}

.route-type-head h3{
  margin:0;
  font-family:var(--font-display);
  font-weight:400;
}

.route-type-card p{
  color:var(--color-text-muted);
}

.route-type-card-wide p{
  max-width:960px;
  color:var(--color-text);
}

.route-conclusion{
  display:inline-flex;
  align-items:center;
  align-self:flex-start;
  max-width:100%;
  margin-top:auto;
  padding:9px 14px;
  border-radius:var(--radius-pill);
  background:var(--color-text);
  color:var(--color-panel);
  font-size:var(--nodes-small-size);
  box-shadow:var(--shadow-pill);
}

.use-case-list{
  display:grid;
  gap:16px;
  max-width:1040px;
  margin-inline:auto;
}

.use-case{
  display:grid;
  grid-template-columns:90px minmax(0,1fr);
  gap:28px;
  padding:clamp(24px,4vw,40px);
  border:var(--nodes-section-border);
  border-radius:var(--radius-large);
  background:var(--color-panel);
}

.use-case-index{
  display:flex;
  align-items:center;
  justify-content:center;
  width:72px;
  height:72px;
  border:var(--nodes-strong-border);
  border-radius:var(--radius-pill);
  background:var(--color-panel-muted);
  font-family:var(--font-mono);
  font-size:var(--nodes-index-size);
}

.use-case h3{
  margin-bottom:12px;
  font-family:var(--font-body);
  font-size:22px;
  font-weight:600;
}

.use-case p{
  color:var(--color-text-muted);
}

.use-case p:last-child{
  margin-bottom:0;
}

.method-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
}

.method-card{
  min-height:100%;
  padding:clamp(24px,3vw,34px);
  border:var(--nodes-section-border);
  border-radius:var(--radius-large);
  background:var(--color-panel);
}

.method-kicker{
  display:inline-flex;
  align-items:center;
  min-height:27px;
  margin-bottom:18px;
  padding:4px 11px;
  border-radius:var(--radius-pill);
  background:var(--color-accent-soft);
  color:var(--color-accent-dark);
  font-family:var(--font-mono);
  font-size:var(--nodes-label-size);
}

.method-card h3{
  margin-bottom:12px;
  font-family:var(--font-body);
  font-size:21px;
  font-weight:600;
}

.method-card p{
  margin-bottom:0;
  color:var(--color-text-muted);
}

.node-prose{
  padding:clamp(26px,5vw,48px);
  border:var(--nodes-section-border);
  border-radius:var(--radius-xlarge);
  background:var(--color-panel);
  box-shadow:var(--shadow-card);
}

.node-prose h3:first-child{
  margin-top:0;
}

.node-end-actions{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:12px;
  margin-top:34px;
}

@media(max-width:800px){
  .node-hero::before,
  .node-hero::after{
    display:none;
  }

  .route-type-grid,
  .method-grid{
    grid-template-columns:1fr;
  }

  .route-type-card-wide{
    grid-column:auto;
  }
}

@media(max-width:640px){
  .node-hero{
    padding-top:64px;
    padding-bottom:64px;
  }

  .node-hero-copy{
    font-size:16px;
  }

  .node-facts{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .node-facts span{
    justify-content:center;
    text-align:center;
  }

  .region-nav{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .region-nav a{
    width:100%;
  }

  .use-case{
    grid-template-columns:1fr;
    gap:18px;
  }

  .use-case-index{
    width:auto;
    min-width:72px;
    height:38px;
    justify-self:start;
    padding-inline:16px;
  }

  .route-conclusion{
    border-radius:var(--radius-medium);
  }

  .node-end-actions{
    align-items:stretch;
    flex-direction:column;
  }

  .node-end-actions .btn{
    width:100%;
  }
}

@media(max-width:390px){
  .node-facts{
    grid-template-columns:1fr;
  }

  .route-type-card,
  .use-case,
  .method-card,
  .node-prose{
    padding:22px;
  }
}