/* Landcare Design System component layer.
   Import after a brand token file such as ./landcare.css. */

.lds-type-display,
.lds-type-h1,
.lds-type-h2,
.lds-type-h3,
.lds-type-lead,
.lds-type-body,
.lds-type-body-small,
.lds-type-caption,
.lds-type-eyebrow {
  color: var(--lds-colour-dark-grey, #444642);
  font-family: var(--lds-font-body, "Open Sans", Arial, sans-serif);
  margin-block-start: 0;
}

.lds-type-display {
  font-family: var(--lds-type-display-font-family, "Open Sans", Arial, sans-serif);
  font-size: var(--lds-type-display-font-size, clamp(56px, 8vw, 96px));
  font-weight: var(--lds-type-display-font-weight, 800);
  letter-spacing: var(--lds-type-display-letter-spacing, -0.01em);
  line-height: var(--lds-type-display-line-height, 0.96);
  margin-block-end: 2rem;
}

.lds-type-h1 {
  font-family: var(--lds-type-h1-font-family, "Open Sans", Arial, sans-serif);
  font-size: var(--lds-type-h1-font-size, clamp(48px, 6.5vw, 84px));
  font-weight: var(--lds-type-h1-font-weight, 800);
  letter-spacing: var(--lds-type-h1-letter-spacing, -0.01em);
  line-height: var(--lds-type-h1-line-height, 0.98);
  margin-block-end: 1.5rem;
}

.lds-type-h2 {
  font-family: var(--lds-type-h2-font-family, "Open Sans", Arial, sans-serif);
  font-size: var(--lds-type-h2-font-size, 24px);
  font-weight: var(--lds-type-h2-font-weight, 800);
  letter-spacing: var(--lds-type-h2-letter-spacing, 0);
  line-height: var(--lds-type-h2-line-height, 1.12);
  margin-block-end: 0.75rem;
}

.lds-type-h3 {
  font-family: var(--lds-type-h3-font-family, "Open Sans", Arial, sans-serif);
  font-size: var(--lds-type-h3-font-size, 18px);
  font-weight: var(--lds-type-h3-font-weight, 800);
  letter-spacing: var(--lds-type-h3-letter-spacing, 0);
  line-height: var(--lds-type-h3-line-height, 1.2);
  margin-block-end: 0.75rem;
}

.lds-type-lead {
  font-family: var(--lds-type-lead-font-family, "Open Sans", Arial, sans-serif);
  font-size: var(--lds-type-lead-font-size, 21px);
  font-weight: var(--lds-type-lead-font-weight, 500);
  letter-spacing: var(--lds-type-lead-letter-spacing, 0);
  line-height: var(--lds-type-lead-line-height, 1.45);
  margin-block-end: 1.5rem;
}

.lds-type-body {
  font-family: var(--lds-type-body-font-family, "Open Sans", Arial, sans-serif);
  font-size: var(--lds-type-body-font-size, 16px);
  font-weight: var(--lds-type-body-font-weight, 400);
  letter-spacing: var(--lds-type-body-letter-spacing, 0);
  line-height: var(--lds-type-body-line-height, 1.62);
  max-width: 78ch;
}

.lds-type-body-small {
  font-family: var(--lds-type-body-small-font-family, "Open Sans", Arial, sans-serif);
  font-size: var(--lds-type-body-small-font-size, 14px);
  font-weight: var(--lds-type-body-small-font-weight, 400);
  letter-spacing: var(--lds-type-body-small-letter-spacing, 0);
  line-height: var(--lds-type-body-small-line-height, 1.5);
}

.lds-type-caption {
  font-family: var(--lds-type-caption-font-family, "Open Sans", Arial, sans-serif);
  font-size: var(--lds-type-caption-font-size, 13px);
  font-weight: var(--lds-type-caption-font-weight, 600);
  letter-spacing: var(--lds-type-caption-letter-spacing, 0);
  line-height: var(--lds-type-caption-line-height, 1.35);
}

.lds-type-eyebrow {
  font-family: var(--lds-type-eyebrow-font-family, "Open Sans", Arial, sans-serif);
  font-size: var(--lds-type-eyebrow-font-size, 11px);
  font-weight: var(--lds-type-eyebrow-font-weight, 800);
  letter-spacing: var(--lds-type-eyebrow-letter-spacing, 0.08em);
  line-height: var(--lds-type-eyebrow-line-height, 1.2);
  text-transform: uppercase;
}

.lds-button {
  align-items: center;
  background: var(--lds-colour-landcare-green, #82a523);
  border: 2px solid var(--lds-colour-landcare-green, #82a523);
  color: #ffffff;
  cursor: pointer;
  display: inline-flex;
  font-family: var(--lds-type-button-font-family, "Open Sans", Arial, sans-serif);
  font-size: var(--lds-type-button-font-size, 14px);
  font-weight: var(--lds-type-button-font-weight, 700);
  gap: 0.5rem;
  justify-content: center;
  line-height: var(--lds-type-button-line-height, 1.2);
  min-height: 44px;
  padding: 0.75rem 1rem;
  text-decoration: none;
}

.lds-button:hover,
.lds-button:focus-visible {
  background: var(--lds-colour-forest, #325040);
  border-color: var(--lds-colour-forest, #325040);
}

.lds-button-secondary {
  background: transparent;
  color: var(--lds-colour-dark-grey, #444642);
}

.lds-field {
  display: grid;
  gap: 0.4rem;
}

.lds-form {
  display: grid;
  gap: 1rem;
  max-width: 42rem;
}

.lds-label {
  color: var(--lds-colour-dark-grey, #444642);
  font-family: var(--lds-type-body-font-family, "Open Sans", Arial, sans-serif);
  font-size: var(--lds-type-body-small-font-size, 14px);
  font-weight: 700;
}

.lds-help-text {
  color: var(--lds-colour-dark-grey, #444642);
  font-family: var(--lds-type-caption-font-family, "Open Sans", Arial, sans-serif);
  font-size: var(--lds-type-caption-font-size, 13px);
  line-height: var(--lds-type-caption-line-height, 1.35);
}

.lds-input,
.lds-select,
.lds-textarea {
  background: #ffffff;
  border: 2px solid var(--lds-colour-light-grey, #d8dad9);
  color: var(--lds-colour-dark-grey, #444642);
  font-family: var(--lds-type-body-font-family, "Open Sans", Arial, sans-serif);
  font-size: var(--lds-type-body-font-size, 16px);
  line-height: var(--lds-type-body-line-height, 1.62);
  min-height: 44px;
  padding: 0.65rem 0.75rem;
  width: 100%;
}

.lds-textarea {
  min-height: 132px;
  resize: vertical;
}

.lds-input:focus,
.lds-select:focus,
.lds-textarea:focus {
  border-color: var(--lds-colour-landcare-green, #82a523);
  outline: 3px solid rgb(var(--lds-colour-landcare-green-rgb, 130 165 35) / 0.25);
  outline-offset: 2px;
}

.lds-choice {
  align-items: start;
  display: flex;
  font-family: var(--lds-type-body-font-family, "Open Sans", Arial, sans-serif);
  gap: 0.65rem;
  line-height: var(--lds-type-body-line-height, 1.62);
}

.lds-choice input {
  accent-color: var(--lds-colour-landcare-green, #82a523);
  height: 1.2rem;
  margin-top: 0.22rem;
  width: 1.2rem;
}

.lds-field-group {
  border: 1px solid var(--lds-colour-light-grey, #d8dad9);
  display: grid;
  gap: 0.75rem;
  padding: 1rem;
}

.lds-field-group legend {
  color: var(--lds-colour-dark-grey, #444642);
  font-family: var(--lds-type-h3-font-family, "Open Sans", Arial, sans-serif);
  font-size: var(--lds-type-h3-font-size, 18px);
  font-weight: var(--lds-type-h3-font-weight, 800);
  padding: 0 0.35rem;
}

.lds-breadcrumb {
  color: var(--lds-colour-dark-grey, #444642);
  display: flex;
  flex-wrap: wrap;
  font-family: var(--lds-type-eyebrow-font-family, "Open Sans", Arial, sans-serif);
  font-size: var(--lds-type-eyebrow-font-size, 11px);
  font-weight: var(--lds-type-eyebrow-font-weight, 800);
  gap: 0.45rem;
  letter-spacing: var(--lds-type-eyebrow-letter-spacing, 0.08em);
  line-height: var(--lds-type-eyebrow-line-height, 1.2);
  text-transform: uppercase;
}

.lds-breadcrumb a {
  color: var(--lds-colour-forest, #325040);
  font-weight: 700;
}

.lds-breadcrumb [aria-hidden="true"] {
  color: var(--lds-colour-dark-grey, #444642);
  font-weight: 600;
  opacity: 0.55;
}

.lds-menu ul,
.lds-section-index {
  display: grid;
  gap: 0.25rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.lds-menu {
  color: var(--lds-colour-dark-grey, #444642);
  font-family: var(--lds-type-body-font-family, "Open Sans", Arial, sans-serif);
}

.lds-menu a,
.lds-menu summary,
.lds-section-index a {
  border-left: 4px solid transparent;
  color: var(--lds-colour-dark-grey, #444642);
  cursor: pointer;
  display: flex;
  font-weight: 700;
  gap: 0.5rem;
  padding: 0.6rem 0.75rem;
  text-decoration: none;
}

.lds-menu summary {
  list-style: none;
}

.lds-menu summary::-webkit-details-marker {
  display: none;
}

.lds-menu summary::after {
  content: "+";
  margin-left: auto;
}

.lds-menu details[open] > summary::after {
  content: "−";
}

.lds-menu a:hover,
.lds-menu a:focus-visible,
.lds-menu summary:hover,
.lds-menu summary:focus-visible,
.lds-section-index a:hover,
.lds-section-index a:focus-visible {
  background: var(--lds-colour-light-green, #eff5dc);
  border-left-color: var(--lds-colour-landcare-green, #82a523);
}

.lds-menu-sidebar {
  max-width: 18rem;
}

.lds-menu-sidebar ul ul {
  border-left: 1px solid var(--lds-colour-light-grey, #d8dad9);
  margin-left: 1rem;
  padding-left: 0.5rem;
}

.lds-menu-header {
  align-items: flex-start;
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
  position: relative;
}

.lds-menu-header > a,
.lds-menu-header > details > summary {
  align-items: center;
  border-left: 0;
  box-sizing: border-box;
  min-height: 44px;
  padding: 0.6rem 0.75rem;
}

.lds-menu-header > details {
  display: block;
  position: relative;
}

.lds-menu-header > details > summary::after {
  content: "⌄";
  display: inline-block;
  flex: 0 0 1em;
  margin-left: 0.35rem;
  text-align: center;
  width: 1em;
}

.lds-menu-header > details[open] > summary::after {
  content: "⌃";
}

.lds-menu-header > details > div {
  background: #ffffff;
  border: 1px solid var(--lds-colour-light-grey, #d8dad9);
  box-shadow: 0 10px 24px rgb(0 0 0 / 0.08);
  display: grid;
  left: 0;
  min-width: 14rem;
  padding: 0.35rem;
  position: absolute;
  top: calc(100% + 0.25rem);
  z-index: 5;
}

.lds-menu-header > details > div a {
  border-left-width: 3px;
}

.lds-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
}

.lds-tab {
  background: #ffffff;
  border: 1px solid var(--lds-colour-light-grey, #d8dad9);
  color: var(--lds-colour-dark-grey, #444642);
  font-family: var(--lds-type-button-font-family, "Open Sans", Arial, sans-serif);
  font-weight: 700;
  min-height: 44px;
  padding: 0.65rem 0.9rem;
}

.lds-tab[aria-selected="true"] {
  background: var(--lds-colour-dark-grey, #444642);
  border-color: var(--lds-colour-dark-grey, #444642);
  color: #ffffff;
}

.lds-pagination {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.lds-page-header,
.lds-hero,
.lds-section-band {
  display: grid;
  gap: 1rem;
  padding: clamp(1.5rem, 4vw, 3rem);
}

.lds-page-header,
.lds-section-band {
  background: var(--lds-colour-light-green, #eff5dc);
  border-left: 8px solid var(--lds-colour-landcare-green, #82a523);
}

.lds-hero {
  background: var(--lds-colour-dark-grey, #444642);
  color: #ffffff;
}

.lds-footer {
  border-top: 1px solid var(--lds-colour-light-grey, #d8dad9);
  color: var(--lds-colour-dark-grey, #444642);
  display: grid;
  gap: 0.75rem;
  padding: 1.5rem 0;
}

.lds-sidebar {
  border-left: 4px solid var(--lds-colour-landcare-green, #82a523);
  display: grid;
  gap: 0.75rem;
  padding-left: 1rem;
}
