/* Beverley and Holderness Council - custom skin over govuk-frontend v6.4.0.
   Licence-safe: no GDS Transport font files are hosted; the local() shim below
   makes "GDS Transport" resolve to installed sans-serif so the restricted
   font is never requested. No GOV.UK crown, crest, or wordmark is used. */

@font-face {
  font-family: "GDS Transport";
  src: local("Helvetica Neue"), local("Helvetica"), local("Arial"), local("Roboto");
  font-weight: 400;
  font-style: normal;
}
@font-face {
  font-family: "GDS Transport";
  src: local("Helvetica Neue Bold"), local("Helvetica Bold"), local("Arial Bold"), local("Arial");
  font-weight: 700;
  font-style: normal;
}

:root {
  --bh-brand: #12513a;
  --bh-brand-dark: #0d3d2c;
  --bh-brand-light: #1c6b4d;
  --bh-red: #d4351c;
  --bh-accent: #f3c000;
}

/* ---- Section 114 emergency banner ---- */
.bh-emergency {
  background: var(--bh-red);
  color: #ffffff;
  border-bottom: 4px solid #942514;
}
.bh-emergency__text {
  margin: 0;
  padding: 12px 0;
  font-size: 1rem;
  line-height: 1.4;
}
.bh-emergency__link {
  color: #ffffff;
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 2px;
  font-weight: 700;
  white-space: nowrap;
}
.bh-emergency__link:hover { text-decoration-thickness: 3px; }
.bh-emergency__link:focus {
  background: var(--bh-accent);
  color: #0b0c0c;
  box-shadow: 0 -2px var(--bh-accent), 0 4px #0b0c0c;
  text-decoration: none;
  outline: 3px solid transparent;
}

/* ---- Header ---- */
.bh-header__bar {
  background: var(--bh-brand);
  border-bottom: 6px solid var(--bh-accent);
}
.bh-header__actions {
  display: flex;
  align-items: center;
  gap: 16px;
}
.bh-nav-toggle {
  display: none;
  background: transparent;
  border: 2px solid #ffffff;
  color: #ffffff;
  font-size: 1.0625rem;
  font-weight: 700;
  padding: 6px 14px;
  border-radius: 4px;
  cursor: pointer;
}
.bh-nav-toggle:hover { background: rgba(255, 255, 255, 0.12); }
.bh-nav-toggle:focus {
  outline: 3px solid transparent;
  color: #0b0c0c;
  background: var(--bh-accent);
  border-color: #0b0c0c;
  box-shadow: 0 0 0 3px var(--bh-accent);
}
.bh-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 14px 0;
  flex-wrap: wrap;
}
.bh-header__homepage-link {
  display: flex;
  align-items: center;
  gap: 12px;
  text-decoration: none;
  color: #ffffff;
}
.bh-header__homepage-link:hover .bh-header__name { text-decoration: underline; }
.bh-header__homepage-link:focus {
  outline: 3px solid transparent;
  color: #0b0c0c;
  background: var(--bh-accent);
  box-shadow: 0 -2px var(--bh-accent), 0 4px #0b0c0c;
}
.bh-header__logo { height: 74px; width: auto; display: block; flex: 0 0 auto; }
.bh-header__wordmark {
  color: #ffffff;
  font-size: 1.75rem;
  font-weight: 700;
  line-height: 1.1;
  max-width: 12em;
}
@media (max-width: 48.0625em) {
  .bh-header__logo { height: 60px; }
  .bh-header__wordmark { font-size: 1.25rem; max-width: 9em; }
}
.bh-header__account-link {
  color: #ffffff;
  font-size: 1rem;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.bh-header__account-link:hover { text-decoration-thickness: 2px; }
.bh-header__account-link:focus {
  outline: 3px solid transparent;
  color: #0b0c0c;
  background: var(--bh-accent);
  box-shadow: 0 -2px var(--bh-accent), 0 4px #0b0c0c;
  text-decoration: none;
}

/* ---- Service navigation ---- */
.govuk-service-navigation {
  background: var(--bh-brand-dark);
  border-bottom: 1px solid var(--bh-brand-light);
}
.govuk-service-navigation__link,
.govuk-service-navigation__link:link,
.govuk-service-navigation__link:visited { color: #ffffff; }
.govuk-service-navigation__link:hover { color: var(--bh-accent); text-decoration-thickness: 3px; }
.govuk-service-navigation__item--active .govuk-service-navigation__link,
.govuk-service-navigation__item--active .govuk-service-navigation__link:link {
  color: #ffffff;
}
.govuk-service-navigation__item--active { box-shadow: inset 0 -5px var(--bh-accent); }
.govuk-service-navigation__active-fallback { font-weight: 700; }
.govuk-service-navigation__link:focus {
  color: #0b0c0c;
  box-shadow: 0 -2px var(--bh-accent), 0 4px #0b0c0c;
}

/* Responsive control. govuk-frontend's JS is not loaded, so the nav is managed
   here. At all widths the header is sticky and the nav sits behind a "Menu"
   button; opening it drops the nav list down beneath the logo bar. Without JS
   the nav shows inline as a fallback. */
.govuk-service-navigation__list { display: flex; flex-wrap: wrap; margin: 0; }

.bh-header { position: sticky; top: 0; z-index: 100; }
.js-enabled .bh-nav-toggle { display: inline-block; }
.js-enabled .govuk-service-navigation { display: none; }
.js-enabled .bh-header.bh-menu-open .govuk-service-navigation { display: block; }

@media (max-width: 48.0625em) {
  .bh-header__account-link { display: none; }
  .govuk-service-navigation__list { display: block; }
  .govuk-service-navigation__item--active { box-shadow: inset 5px 0 var(--bh-accent); }
}

/* ---- Homepage hero ---- */
.bh-hero {
  background:
    linear-gradient(90deg, rgba(13,61,44,0.94) 0%, rgba(13,61,44,0.74) 48%, rgba(13,61,44,0.38) 100%),
    #12513a url(/assets/website-hero.jpg) center 42% / cover no-repeat;
  color: #ffffff;
  padding: 44px 0 52px;
  margin-bottom: 0;
}
.bh-hero__title { color: #ffffff; margin-bottom: 8px; }
.bh-hero__strap { color: #ffffff; font-size: 1.1875rem; margin-bottom: 24px; opacity: 0.95; }
.bh-search { display: flex; max-width: 40rem; }
.bh-search__input {
  flex: 1 1 auto;
  border: 2px solid #ffffff;
  border-right: 0;
  padding: 10px 12px;
  font-size: 1.1875rem;
  font-family: inherit;
}
.bh-search__button {
  flex: 0 0 auto;
  border: 2px solid var(--bh-accent);
  background: var(--bh-accent);
  color: #0b0c0c;
  font-weight: 700;
  padding: 10px 16px;
  cursor: pointer;
  font-size: 1.0625rem;
}
.bh-search__button:hover { background: #d9ac00; }

/* ---- Task tiles ---- */
.bh-tiles { list-style: none; margin: 0; padding: 0; display: grid; gap: 16px; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); }
.bh-tile {
  display: block;
  background: #f3f2f1;
  border-left: 5px solid var(--bh-brand);
  padding: 16px 18px;
  text-decoration: none;
  color: var(--bh-brand-dark);
  font-weight: 700;
  font-size: 1.1875rem;
}
.bh-tile:hover { background: #e8f0ec; }
.bh-tile:focus { background: var(--bh-accent); border-left-color: #0b0c0c; color: #0b0c0c; outline: 3px solid transparent; box-shadow: 0 -2px var(--bh-accent), 0 4px #0b0c0c; }
.bh-tile__desc { display: block; font-weight: 400; font-size: 1rem; color: #505a5f; margin-top: 4px; }
.bh-tile:focus .bh-tile__desc { color: #0b0c0c; }

/* triad: report it / pay it / apply for it */
.bh-triad { display: grid; gap: 24px; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); }
.bh-triad h3 { margin-top: 0; }

/* ---- News list ---- */
.bh-news { list-style: none; margin: 0; padding: 0; }
.bh-news__item { padding: 16px 0; border-bottom: 1px solid #b1b4b6; }
.bh-news__date { color: #505a5f; font-size: 1rem; display: block; margin-top: 4px; }

/* ---- ANPR / evidence placeholder ---- */
.bh-anpr {
  background: #1d1d1d;
  color: #cfd6d1;
  border: 1px solid #0b0c0c;
  aspect-ratio: 4 / 3;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 16px;
  font-family: monospace;
  font-size: 0.9375rem;
}

/* ---- Countdown timer ---- */
.bh-timer {
  display: inline-block;
  background: #0b0c0c;
  color: #ffffff;
  font-family: monospace;
  font-weight: 700;
  padding: 4px 10px;
  font-size: 1.25rem;
  letter-spacing: 0.05em;
}
.bh-timer--warn { background: var(--bh-red); }

/* ---- Live wait-time counter ---- */
.bh-wait { font-variant-numeric: tabular-nums; font-weight: 700; }

/* ---- Sortable spend table helpers ---- */
.bh-sortable th[aria-sort] { cursor: pointer; }
.bh-sortable th[aria-sort] button {
  background: none; border: 0; padding: 0; margin: 0; font: inherit; font-weight: 700;
  cursor: pointer; color: inherit; text-align: left; width: 100%;
}
.bh-sortable th[aria-sort="ascending"] button::after { content: " \25B2"; }
.bh-sortable th[aria-sort="descending"] button::after { content: " \25BC"; }
.bh-sortable th[aria-sort="none"] button::after { content: " \2195"; color: #6f777b; }
.bh-num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }

/* ---- Cookie banner (custom, gag copy) ---- */
.bh-cookie { background: #f3f2f1; border-bottom: 1px solid #b1b4b6; }
.bh-cookie__inner { padding: 20px 0; }
.bh-cookie__detail { margin-top: 8px; }

/* ---- Footer ---- */
.bh-footer {
  background: var(--bh-brand-dark);
  color: #ffffff;
  padding: 32px 0 40px;
  margin-top: 40px;
  border-top: 6px solid var(--bh-accent);
}
.bh-footer__nav { display: grid; gap: 24px; grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); margin-bottom: 24px; }
.bh-footer__heading { font-size: 1.0625rem; color: var(--bh-accent); margin: 0 0 10px; }
.bh-footer__list { list-style: none; margin: 0; padding: 0; }
.bh-footer__list li { margin-bottom: 8px; }
.bh-footer__link, .bh-footer__link:link, .bh-footer__link:visited { color: #ffffff; text-underline-offset: 2px; }
.bh-footer__link:hover { color: var(--bh-accent); }
.bh-footer__link:focus { color: #0b0c0c; background: var(--bh-accent); box-shadow: 0 -2px var(--bh-accent), 0 4px #0b0c0c; text-decoration: none; outline: 3px solid transparent; }
.bh-footer__meta { border-top: 1px solid var(--bh-brand-light); padding-top: 20px; font-size: 0.9375rem; color: #cfd6d1; }
.bh-footer__meta p { margin: 0 0 10px; max-width: 50rem; }
.bh-footer__copyright { color: #ffffff; }

/* Party imprint (legally required on campaign material) */
.bh-imprint {
  text-align: center;
  color: rgba(255, 255, 255, 0.82);
  font-size: 0.875rem;
  line-height: 1.6;
  margin: 28px 0 0;
  padding-top: 20px;
  border-top: 1px solid var(--bh-brand-light);
}

/* ---- Image placeholder (real photo/render to be supplied later) ---- */
.bh-photo {
  background: #d8dcd9 repeating-linear-gradient(135deg, transparent 0, transparent 14px, rgba(0,0,0,0.03) 14px, rgba(0,0,0,0.03) 28px);
  border: 1px solid #b1b4b6;
  color: #505a5f;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 20px;
  font-size: 0.9375rem;
}
.bh-figure { margin: 0 0 20px; }
.bh-figure__caption { color: #505a5f; font-size: 0.9375rem; padding-top: 8px; }

/* ---- Article + partner logos ---- */
.bh-figure img, .bh-article img { max-width: 100%; height: auto; display: block; }
.bh-partner-band {
  background: var(--bh-brand-dark);
  padding: 24px 28px;
  margin: 28px 0;
  border-radius: 4px;
}
.bh-partner-band h2 { color: #ffffff; font-size: 1rem; margin: 0 0 16px; font-weight: 400; opacity: 0.85; }
.bh-partner-band img { max-width: 100%; height: auto; }

/* ---- Small helpers ---- */
.bh-metric { font-variant-numeric: tabular-nums; }
@media (max-width: 40.0625em) {
  .bh-header__name { font-size: 1.25rem; }
  .bh-header__account { width: 100%; }
}
