.homepage-banner .ce-hero-copy { padding-block: clamp(24px,3vw,42px); }
.ce-site .homepage-banner h1 { font-size: clamp(2.5rem,5.25vw,4.5rem); margin-block: 14px; line-height: 1.03; }
.homepage-banner .ce-hero-actions { margin-top: 19px; }
.homepage-banner .ce-board { min-height: 0; }
.homepage-banner .ce-board img { inset: 0; }
.homepage-banner .hero-circuit {
  position: absolute; inset: 0; width: 100%; height: 100%;
  pointer-events: none; color: #67caff; opacity: .45;
}
.hero-circuit .route { stroke-dasharray: 1; stroke-dashoffset: 0; animation: circuit-draw 2.7s ease-out both; }
.hero-circuit .route:nth-child(2n) { animation-delay: .32s; }
.hero-circuit .via { animation: circuit-via 2.8s ease-out both; }
@keyframes circuit-draw { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }
@keyframes circuit-via { 0%, 70% { opacity: 0; } 100% { opacity: 1; } }
@media (min-width: 721px) {
  .homepage-banner { min-height: clamp(370px,31vw,440px); }
}
@media (max-width: 720px) {
  .homepage-banner .ce-board { min-height: clamp(125px,37vw,205px); }
  .homepage-banner .ce-hero-actions .ce-button { min-height: 44px; }
}
.calculation-filters { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,.7fr) auto; align-items:end; gap: .75rem; }
.calculation-filters label { display: grid; gap:.25rem; font-weight: 650; }
.calculation-filters :is(input,select) {
  min-width:0; width:100%; min-height:44px; padding:.55rem .7rem;
  border:1px solid var(--line); border-radius:.5rem; background:var(--surface); color:var(--ink); font:inherit;
}
.calculation-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.calculation-card {
  position:relative; overflow:hidden; display:flex; flex-direction:column; align-items:flex-start;
  gap:.55rem; min-width:0; padding:1.2rem; border:1px solid var(--line); border-radius:1rem; background:var(--surface);
  transition:transform .2s ease,border-color .2s ease;
}
.calculation-card::after {
  content:''; position:absolute; top:0; right:0; width:70px; height:38px; pointer-events:none; opacity:.18;
  background:linear-gradient(135deg,transparent 47%,var(--blue) 48% 50%,transparent 51%) 0 0/25px 25px repeat-x;
}
.calculation-card:is(:hover,:focus-within) { border-color:var(--blue); transform:translateY(-3px); }
.calculation-card h2 { font-size:1.1rem; margin:0; }
.calculation-card p { margin:0 0 .3rem; font-size:.9rem; color:var(--muted); }
.calculation-card .ce-label { font-size:.65rem; }
.calculation-icon { border-radius:.5rem; padding:.1rem .5rem; background:var(--brand-blue-tint); color:var(--brand-blue-dark); font-weight:700; }
.calculation-card a { margin-top:auto; }
.calculation-card a span { transition:transform .2s ease; }
.calculation-card a:is(:hover,:focus-visible) span { transform:translateX(3px); }
.design-breadcrumbs { margin-bottom:1rem; font-size:.9rem; }
.design-guide { margin-top:1.25rem; }
.design-guide h2 { margin-top:0; }
.design-guide a,.design-breadcrumbs a { color:var(--brand-blue-dark); text-decoration:underline; text-underline-offset:3px; }
.design-guide ul { display:flex; gap:.4rem 1.3rem; flex-wrap:wrap; padding-left:1.1rem; }
.design-check-fields label:has(textarea) { grid-column:1/-1; }
.design-check-fields textarea,.design-check-fields input[type=text] {
  width:100%; min-width:0; padding:.55rem .7rem; border:1px solid var(--line); border-radius:.5rem;
  background:var(--bg); color:var(--ink); font:inherit;
}
.design-check-fields textarea { resize:vertical; }
#design-error:empty,#design-limit-source:empty,.ce-site #designPriceError:empty { display:none; }
.unit-presets { display:flex; gap:.45rem; flex-wrap:wrap; margin-bottom:1rem; }
.unit-presets legend { width:100%; }
@media (max-width: 880px) { .calculation-list { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width: 560px) {
  .calculation-list,.calculation-filters { grid-template-columns:minmax(0,1fr); }
  .calculation-filters button { justify-self:start; }
}
@media (prefers-reduced-motion: reduce) {
  .hero-circuit .route,.hero-circuit .via { animation:none; }
  .calculation-card,.calculation-card a span { transition:none !important; transform:none !important; }
}
