/* Yard charges calculator (/yard-charges/). Loaded only on that page. */
.yc-sr {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}
.content-page--yard-charges .yc .wrap > .head {
  margin-bottom: 28px;
}
.yc-review,
.yc-down,
.yc-noscript {
  margin: 0 0 24px;
  padding: 14px 18px;
  border-left: 3px solid var(--minium);
  background: var(--wash);
  font-size: 15px;
}
.yc-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: start;
  gap: clamp(28px, 4vw, 56px);
}
.yc-inputs {
  display: grid;
  gap: 18px;
  min-width: 0;
}
.yc-block {
  margin: 0;
  padding: 18px 0 4px;
  border: 0;
  border-top: 2px solid var(--navy);
  min-width: 0;
}
.yc-block legend,
.yc-more > summary {
  padding: 0;
  color: var(--navy);
  font: 700 17px/1.3 var(--display);
}
.yc-more > summary {
  cursor: pointer;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 12px;
}
.yc-more > summary::-webkit-details-marker {
  display: none;
}
.yc-more > summary::before {
  content: "+";
  font: 600 16px var(--mono);
  width: 14px;
}
.yc-more[open] > summary::before {
  content: "−";
}
.yc-more > summary span {
  color: var(--muted);
  font: 400 13px/1.4 var(--serif);
}
.yc-more > .yc-grid {
  margin-top: 16px;
}
.yc-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px 18px;
  margin-top: 12px;
}
.yc-field {
  display: grid;
  gap: 6px;
  align-content: start;
  min-width: 0;
  color: rgba(0, 46, 109, 0.86);
  font: 500 10.5px/1.4 var(--mono);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.yc-field em {
  font-style: normal;
  text-transform: none;
  letter-spacing: 0;
  font-weight: 400;
}
.yc-field input,
.yc-field select,
.yc-form-select {
  width: 100%;
  min-height: 46px;
  padding: 9px 12px;
  border: 1px solid #cfd7e0;
  border-radius: 0;
  color: var(--ink);
  background: #fff;
  font: 16px/1.4 var(--serif);
  letter-spacing: 0;
  text-transform: none;
}
.yc-field input:focus,
.yc-field select:focus {
  border-color: var(--navy);
  outline: 2px solid rgba(0, 46, 109, 0.16);
  outline-offset: 0;
}
.yc-field input[aria-invalid="true"] {
  border-color: #8f2f17;
}
.yc-pair {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
}
.yc-pair select {
  width: auto;
  border-left: 0;
  background: var(--wash);
}
.yc-note,
.yc-err {
  font: 400 13px/1.45 var(--serif);
  letter-spacing: 0;
  text-transform: none;
  color: var(--muted);
}
.yc-note--warn {
  color: var(--navy);
  font-weight: 600;
}
.yc-err {
  color: #8f2f17;
  font-weight: 600;
}
.yc-err::before {
  content: "! ";
}
.yc-check {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 15px;
  line-height: 1.45;
  align-self: center;
}
.yc-check input {
  width: 18px;
  height: 18px;
  margin: 2px 0 0;
  flex: 0 0 auto;
  accent-color: var(--navy);
}
.yc-hint {
  margin: 10px 0 0;
  color: var(--muted);
  font-size: 14px;
}
.yc-stay-err {
  margin: 12px 0 0;
  color: #8f2f17;
  font: 600 14px/1.4 var(--display);
}
.yc-class {
  padding-top: 16px;
  border-top: 1px solid var(--rule);
}

/* Result panel */
.yc-result {
  position: sticky;
  top: calc(var(--site-header-height, 90px) + 56px);
  min-width: 0;
  max-height: calc(100vh - var(--site-header-height, 90px) - 72px);
  overflow: auto;
  border: 1px solid var(--rule);
  border-top: 3px solid var(--navy);
  background: #fff;
}
.yc-result__inner {
  padding: 20px clamp(16px, 2.4vw, 26px) 24px;
}
.yc-total {
  margin: 6px 0 4px;
  color: var(--navy);
  font: 600 clamp(30px, 3.4vw, 42px)/1.1 var(--mono);
  letter-spacing: -0.02em;
}
.yc-total--idle {
  color: var(--muted);
  font: 600 18px/1.4 var(--display);
  letter-spacing: 0;
}
.yc-excl {
  margin: 0;
  color: #8f2f17;
  font: 600 13.5px/1.45 var(--display);
}
.yc-allow,
.yc-near {
  margin: 12px 0 0;
  padding: 10px 12px;
  background: var(--wash);
  font-size: 14px;
  line-height: 1.5;
}
.yc-lines {
  margin-top: 16px;
}
.yc-group {
  padding-top: 12px;
  border-top: 1px solid var(--rule);
  margin-top: 12px;
}
.yc-group__title {
  margin: 0 0 6px;
  color: var(--navy);
  font: 600 10.5px/1.4 var(--mono);
  letter-spacing: 0.07em;
  text-transform: uppercase;
}
.yc-group__rows {
  margin: 0;
  padding: 0;
  list-style: none;
}
.yc-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 2px 12px;
  padding: 6px 0;
  font-size: 14.5px;
  line-height: 1.4;
}
.yc-row__name {
  min-width: 0;
}
.yc-row__sec {
  margin-left: 6px;
  color: var(--muted);
  font-size: 11px;
}
.yc-row__calc {
  grid-column: 1;
  color: var(--muted);
  font-size: 13px;
}
.yc-row__sum {
  grid-column: 2;
  grid-row: 1 / span 2;
  align-self: start;
  text-align: right;
  white-space: nowrap;
  font-size: 14px;
}
.yc-row--sub {
  padding-left: 14px;
}
.yc-row--empty .yc-row__calc {
  color: #8f2f17;
  font-style: italic;
}
.yc-group__sub {
  margin: 4px 0 0;
  text-align: right;
  color: var(--navy);
  font-size: 12.5px;
}
.yc-labour {
  margin: 16px 0 0;
  padding-top: 12px;
  border-top: 1px solid var(--rule);
  font-size: 14px;
}
.yc-pdf {
  margin-top: 18px;
}
.yc-pdf__ready {
  display: grid;
  gap: 10px;
  justify-items: start;
}
.yc-pdf__ready[hidden],
.yc-pdf [hidden] {
  display: none;
}
.yc-pdf__ready--form {
  margin-top: 18px;
}
.yc-link {
  margin: 0;
  font-size: 14px;
}
.yc-link a {
  text-decoration: underline;
  text-underline-offset: 3px;
}
.yc-copy {
  margin-left: 8px;
  padding: 2px 8px;
  border: 1px solid var(--rule);
  background: var(--wash);
  font: 12px var(--mono);
  cursor: pointer;
}
.yc-calcid {
  margin: 14px 0 0;
  color: var(--muted);
  font-size: 11px;
}
.yc-notin {
  margin: 0 0 18px;
  padding-left: 18px;
}
.yc-notin li {
  margin-bottom: 8px;
}
.yc-example {
  border-top: 2px solid var(--navy);
  padding-top: 14px;
  max-width: 46em;
}
.yc-example > summary {
  cursor: pointer;
  color: var(--navy);
  font: 700 18px/1.35 var(--display);
}
.enquiry-field select {
  width: 100%;
  min-height: 48px;
  padding: 10px 13px;
  border: 1px solid #cfd7e0;
  border-radius: 0;
  color: var(--ink);
  background: #fff;
  font: 16px/1.45 var(--serif);
  letter-spacing: 0;
  text-transform: none;
}
.yc-print {
  display: none;
}

@media (max-width: 900px) {
  .yc-layout {
    grid-template-columns: 1fr;
  }
  .yc-result {
    position: static;
    max-height: none;
  }
}
@media (max-width: 520px) {
  .yc-grid {
    grid-template-columns: 1fr;
  }
}

/* The PDF is the browser's own "Save as PDF": print only the estimate. */
@media print {
  @page {
    size: A4;
    margin: 14mm 14mm 16mm;
  }
  body > *:not(.yc-print) {
    display: none !important;
  }
  .yc-print {
    display: block !important;
    color: #000;
    font: 10.5pt/1.4 "Source Serif 4", Georgia, serif;
  }
  .ycp-head {
    display: flex;
    align-items: center;
    gap: 18px;
    padding-bottom: 8px;
    border-bottom: 2px solid #002e6d;
  }
  .ycp-head img {
    width: 120px;
    height: auto;
  }
  .ycp-head h1 {
    margin: 0;
    color: #002e6d;
    font: 700 18pt/1.2 Archivo, Arial, sans-serif;
  }
  .ycp-head p {
    margin: 2px 0 0;
    font-size: 9.5pt;
  }
  .yc-print h2 {
    margin: 14px 0 4px;
    color: #002e6d;
    font: 700 11.5pt/1.3 Archivo, Arial, sans-serif;
    break-after: avoid;
  }
  .yc-print table {
    width: 100%;
    margin-top: 10px;
    border-collapse: collapse;
  }
  .yc-print th,
  .yc-print td {
    padding: 3px 6px;
    border-bottom: 0.5pt solid #ccc;
    text-align: left;
    vertical-align: top;
  }
  .ycp-inputs th {
    width: 45%;
    font-weight: 400;
  }
  .ycp-lines td:last-child,
  .ycp-lines th:last-child {
    text-align: right;
    white-space: nowrap;
  }
  .ycp-lines tr {
    break-inside: avoid;
  }
  .ycp-group th {
    padding-top: 8px;
    color: #002e6d;
    font: 600 8.5pt "JetBrains Mono", monospace;
    text-transform: uppercase;
  }
  .ycp-sub td:first-child {
    padding-left: 16px;
  }
  .ycp-subtotal td {
    font-size: 9pt;
    color: #002e6d;
  }
  .ycp-lines tfoot td {
    border-top: 1.5pt solid #002e6d;
    border-bottom: 0;
    font-weight: 700;
    font-size: 12pt;
  }
  .yc-print ul {
    margin: 0;
    padding-left: 16px;
  }
  .ycp-notes p {
    margin: 3px 0;
    font-size: 9pt;
  }
  .ycp-foot {
    margin-top: 14px;
    padding-top: 6px;
    border-top: 1px solid #002e6d;
    font-size: 9pt;
  }
}
