/* Home customisation for Lineman. Original template/vendor styles stay unchanged. */
@font-face {
  font-family: Onest;
  src: url("../fonts/onest-latin.woff2") format("woff2");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}
.ef-home {
  --primary-color: #161a14;
  --secondary-color: #f4f5ef;
  --text-color: #50564c;
  --accent-color: #689802; /* Sampled from the supplied square PNG logo. */
  --accent-secondary-color: #304b08;
  --default-font: Onest, Arial, sans-serif;
  --accent-font: Onest, Arial, sans-serif;
  --ef-bright: #c7e78a;
  --ef-line: #dfe3d8;
  margin: 0;
  background: #fff;
  color: var(--text-color);
  font: 400 16px/1.75 var(--default-font);
  overflow-x: visible;
}
.ef-home *,
.ef-home *::before,
.ef-home *::after {
  box-sizing: border-box;
}
.ef-home [hidden] {
  display: none !important;
}
.ef-home .container {
  max-width: 1280px;
  padding-inline: 28px;
}
.ef-home img {
  display: block;
  height: auto;
  max-width: 100%;
}
.ef-home h1,
.ef-home h2,
.ef-home h3 {
  letter-spacing: -0.045em;
  text-transform: none;
}
.ef-home h2 {
  font-size: clamp(32px, 3.2vw, 46px);
  line-height: 1.14;
}
.ef-home h2 span {
  color: var(--accent-secondary-color);
}
.ef-home p {
  line-height: 1.75;
}
.ef-home a {
  color: inherit;
  text-underline-offset: 5px;
}
.ef-home a:hover {
  color: var(--accent-secondary-color);
}
.ef-home a:focus-visible,
.ef-home button:focus-visible {
  outline: 3px solid #304b08;
  outline-offset: 5px;
  border-radius: 3px;
}
.ef-home .ef-on-dark:focus-visible,
.ef-home .ef-hero a:focus-visible,
.ef-home .ef-contact a:focus-visible {
  outline-color: #fff;
}
.ef-home :where(section, main, #inizio)[tabindex="-1"]:focus {
  outline: none;
}
.ef-home :where(section, main)[id] {
  scroll-margin-top: 24px;
}
.ef-home .ef-skip-link {
  position: fixed;
  top: 10px;
  left: 16px;
  z-index: 1000;
  padding: 12px 20px;
  background: #fff;
  color: #161a14;
  transform: translateY(-180%);
}
.ef-home .ef-skip-link:focus {
  transform: translateY(0);
}
.ef-home .ef-eyebrow {
  margin: 0 0 18px;
  color: var(--accent-secondary-color);
  font-size: 12px;
  font-weight: 650;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}
.ef-home .section-title {
  margin: 0 0 26px;
}
.ef-home .section-title .ef-eyebrow {
  margin: 0 0 18px;
}
.ef-home .section-title h2 {
  margin: 0;
}
.ef-home .ef-section {
  padding: 96px 0;
}
.ef-home .ef-topbar {
  padding: 10px 0;
  color: #e4e8de;
  background: #20271c;
}
.ef-home .ef-topbar-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.ef-home .ef-topbar p {
  margin: 0;
  font-size: 11px;
  letter-spacing: 0.02em;
}
.ef-home .ef-topbar p span {
  padding-inline: 12px;
  color: #a6bc83;
}
.ef-home .ef-quick-links {
  display: flex;
  gap: 26px;
  font-size: 12px;
}
.ef-home .ef-quick-links a:hover {
  color: #c7e78a;
}
.ef-home .ef-quick-links a:focus-visible {
  outline-color: #fff;
}
.ef-home .ef-header {
  border: 0;
  background: #fff;
}
.ef-home .ef-header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  min-height: 112px;
}
.ef-home .ef-brand {
  flex: 0 0 164px;
  padding: 0;
  margin: 0;
}
.ef-home .ef-brand img {
  width: 164px;
  height: auto;
}
.ef-home .ef-nav {
  display: flex;
  align-items: center;
  gap: 40px;
}
.ef-home .ef-nav ul {
  display: flex;
  align-items: center;
  gap: 27px;
  list-style: none;
  padding: 0;
  margin: 0;
}
.ef-home .ef-nav li a {
  display: block;
  padding: 13px 0;
  font-size: 13px;
  font-weight: 500;
  color: #242b1e;
}
.ef-home .ef-nav a[aria-current] {
  text-decoration: underline;
  text-decoration-color: #689802;
  text-decoration-thickness: 2px;
  text-underline-offset: 8px;
}
.ef-home .ef-button {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: 24px;
  min-height: 54px;
  padding: 17px 23px;
  background: #689802;
  color: #101808;
  font: 600 14px/1.45 var(--default-font);
  text-transform: none;
  border: 1px solid transparent;
  border-radius: 10px;
  transition:
    background-color 0.18s ease,
    color 0.18s ease;
  text-decoration: none;
  letter-spacing: -0.015em;
}
.ef-home .ef-button::before,
.ef-home .ef-button::after {
  display: none;
}
.ef-home .ef-button span {
  font-size: 22px;
  line-height: 1;
}
.ef-home .ef-button:hover {
  background: #d2ecab;
  color: #161a14;
}
.ef-home .ef-button-dark {
  background: #263b13;
  color: #fff;
}
.ef-home .ef-header-cta {
  min-height: 46px;
  padding: 12px 17px;
  gap: 16px;
  font-size: 12px;
}
.ef-home .ef-menu-toggle {
  align-items: center;
  gap: 10px;
  border: 1px solid #ccd5be;
  background: #f4f5ef;
  color: #20271c;
  border-radius: 8px;
  padding: 12px;
  min-height: 46px;
  font: 500 14px var(--default-font);
}
.ef-home .ef-menu-lines {
  width: 19px;
  height: 12px;
  border-block: 2px solid currentColor;
}
.ef-home .ef-menu-toggle[aria-expanded="true"] .ef-menu-lines {
  border-bottom: 0;
  transform: rotate(-45deg);
  height: 0;
}
.ef-home .ef-hero {
  position: relative;
  width: auto;
  margin: 0 18px;
  border-radius: 24px;
  padding: 80px 0 0;
  background: #233324;
  overflow: hidden;
}
.ef-home .ef-hero::before {
  display: none;
}
.ef-home .ef-hero-picture {
  position: absolute;
  inset: 0;
}
.ef-home .ef-hero-picture::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(0deg, rgba(12, 22, 15, 0.55), transparent 40%),
    linear-gradient(
      90deg,
      rgba(12, 22, 15, 0.87) 0%,
      rgba(12, 22, 15, 0.72) 48%,
      rgba(12, 22, 15, 0.26) 100%
    );
}
.ef-home .ef-hero-picture img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 64%;
}
.ef-home .ef-hero .container {
  position: relative;
  z-index: 1;
}
.ef-home .ef-hero-content {
  margin: 0;
  max-width: 720px;
  padding-bottom: 66px;
}
.ef-home .ef-hero-eyebrow {
  display: flex;
  align-items: center;
  gap: 10px;
  color: #e6f3d0;
  margin-bottom: 24px;
}
.ef-home .ef-hero-eyebrow span {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #b2d877;
}
.ef-home .ef-hero h1 {
  color: #fff;
  font-size: clamp(42px, 4.8vw, 70px);
  line-height: 1.06;
  font-weight: 500;
  margin: 0 0 24px;
}
.ef-home .ef-hero h1 span {
  color: #d3edae;
}
.ef-home .ef-hero-intro {
  max-width: 510px;
  margin: 0 0 30px;
  color: #f2f5ed;
  font-size: 16px;
  line-height: 1.8;
}
.ef-home .ef-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 22px;
}
.ef-home .ef-text-link {
  display: inline-flex;
  gap: 22px;
  align-items: center;
  min-height: 44px;
  font-size: 14px;
  font-weight: 600;
  text-decoration: underline;
  color: #263b13;
}
.ef-home .ef-text-link span {
  font-size: 20px;
}
.ef-home .ef-on-dark {
  color: #fff;
}
.ef-home .ef-on-dark:hover {
  color: #d3edae;
}
.ef-home .ef-hero-bottom {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  padding: 20px 0;
  border-top: 1px solid #ffffff4d;
  color: #f2f5ed;
  font-size: 11px;
  letter-spacing: 0.035em;
}
.ef-home .ef-about {
  background: #fff;
}
.ef-home .ef-about-image {
  position: relative;
  padding: 0 0 32px;
  margin: 0;
}
.ef-home .ef-about-image > img {
  width: 100%;
  height: 352px;
  object-fit: cover;
  border-radius: 22px;
}
.ef-home .ef-since {
  position: absolute;
  right: 26px;
  bottom: 0;
  display: flex;
  flex-direction: column;
  padding: 22px 32px;
  border-radius: 12px;
  background: #e6edda;
  color: #263b13;
  border: 7px solid #fff;
}
.ef-home .ef-since span {
  font-size: 12px;
}
.ef-home .ef-since strong {
  font-size: 32px;
  line-height: 1.35;
  letter-spacing: -0.05em;
  font-weight: 600;
}
.ef-home .ef-about-copy {
  padding-left: 24px;
}
.ef-home .ef-about-copy p:not(.ef-eyebrow) {
  font-size: 15px;
}
.ef-home .ef-services {
  background: #f4f5ef;
  margin: 0;
  border-radius: 0;
}
.ef-home .ef-services::before,
.ef-home .ef-services::after {
  display: none;
}
.ef-home .ef-section-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 40px;
  margin-bottom: 42px;
}
.ef-home .ef-section-heading .section-title {
  margin: 0;
}
.ef-home .ef-section-heading > p {
  max-width: 340px;
  margin: 0 0 2px;
  font-size: 14px;
}
.ef-home .ef-services-grid > div {
  display: flex;
}
.ef-home .ef-service {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 100%;
  height: auto;
  margin: 0;
  padding: 28px 23px;
  border-radius: 16px;
  border: 1px solid #dfe3d8;
  background: #fff;
  color: #50564c;
  overflow: visible;
}
.ef-home .ef-service::before,
.ef-home .ef-service::after {
  display: none;
}
.ef-home .ef-service-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 38px;
}
.ef-home .ef-service-symbol {
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  border-radius: 10px;
  background: #eff4e6;
  font-size: 32px;
  color: #304b08;
  line-height: 1;
}
.ef-home .ef-number {
  color: #707766;
  font-size: 12px;
}
.ef-home .ef-service h3 {
  margin: 0 0 17px;
  font-size: 22px;
  line-height: 1.25;
  letter-spacing: -0.04em;
}
.ef-home .ef-service p {
  font-size: 14px;
  margin-bottom: 26px;
}
.ef-home .ef-card-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 48px;
  padding-top: 16px;
  border-top: 1px solid #dfe3d8;
  margin-top: auto;
  font-size: 12px;
  font-weight: 600;
  color: #263b13;
  text-decoration: none;
}
.ef-home .ef-card-link:hover {
  text-decoration: underline;
}
.ef-home .ef-card-link span {
  font-size: 21px;
}
.ef-home .ef-solar {
  background: #fff;
}
.ef-home .ef-solar p:not(.ef-eyebrow) {
  max-width: 510px;
  font-size: 15px;
}
.ef-home .ef-check-list {
  list-style: none;
  padding: 0;
  margin: 26px 0;
}
.ef-home .ef-check-list li {
  position: relative;
  padding: 0 0 13px 29px;
  font-size: 14px;
  color: #30372b;
}
.ef-home .ef-check-list li::before {
  content: "✓";
  position: absolute;
  top: 0;
  left: 0;
  color: #304b08;
  font-weight: 700;
}
.ef-home .ef-solar .ef-solar-note {
  padding-top: 20px;
  border-top: 1px solid #dfe3d8;
}
.ef-home .ef-solar-figure {
  margin: 0;
  padding-left: 24px;
}
.ef-home .ef-solar-figure img {
  width: 100%;
  height: 470px;
  object-fit: cover;
  object-position: 55% center;
  border-radius: 22px;
}
.ef-home .ef-solar-figure figcaption {
  padding-top: 12px;
  font-size: 11px;
  color: #50564c;
}
.ef-home .ef-projects {
  padding-top: 80px;
  background: #f4f5ef;
}
.ef-home .ef-project {
  margin: 0;
  position: relative;
  overflow: hidden;
  border-radius: 18px;
}
.ef-home .ef-project .project-image {
  margin: 0;
}
.ef-home .ef-project figure {
  position: relative;
}
.ef-home .ef-project figure::before {
  background: linear-gradient(180deg, transparent 35%, rgba(8, 17, 12, 0.94) 100%);
}
.ef-home .ef-project .project-image img {
  width: 100%;
  height: 400px;
  aspect-ratio: auto;
  object-fit: cover;
  transition: none;
}
.ef-home .ef-project:hover .project-image img {
  transform: none;
}
.ef-home .ef-project .project-image .ef-project-storage {
  object-position: center 57%;
}
.ef-home .ef-project .project-content {
  left: 24px;
  right: 24px;
  bottom: 26px;
}
.ef-home .ef-project .project-content p {
  margin: 0 0 8px;
  color: #d3edae;
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.ef-home .ef-project .project-content h3 {
  color: #fff;
  font-size: 23px;
  line-height: 1.3;
  letter-spacing: -0.03em;
  text-transform: none;
}
.ef-home .ef-projects-footer {
  margin: 32px 0 0;
  text-align: center;
  font-size: 13px;
}
.ef-home .ef-projects-footer a {
  color: #263b13;
  text-decoration: underline;
  font-weight: 600;
}
.ef-home .ef-why {
  background: #fff;
}
.ef-home .ef-why .col-lg-5 > p {
  max-width: 340px;
  font-size: 15px;
}
.ef-home .ef-reason {
  display: flex;
  gap: 30px;
  padding: 26px 0;
  border-bottom: 1px solid #dfe3d8;
}
.ef-home .ef-reason:first-child {
  padding-top: 0;
}
.ef-home .ef-reason > span {
  padding-top: 4px;
  color: #304b08;
  font-size: 12px;
}
.ef-home .ef-reason h3 {
  margin: 0 0 10px;
  font-size: 23px;
}
.ef-home .ef-reason p {
  margin: 0;
  font-size: 14px;
}
.ef-home .ef-contact {
  margin: 0 18px;
  padding: 70px 0;
  border-radius: 24px;
  background: #202d1c;
  color: #ecf1e7;
}
.ef-home .ef-contact::before,
.ef-home .ef-contact::after {
  display: none;
}
.ef-home .ef-contact .ef-eyebrow {
  color: #d3edae;
}
.ef-home .ef-contact h2 {
  margin-bottom: 25px;
  color: #fff;
}
.ef-home .ef-contact h2 span {
  color: #d3edae;
}
.ef-home .ef-contact p:not(.ef-eyebrow) {
  max-width: 520px;
  font-size: 15px;
}
.ef-home .ef-contact-details {
  padding: 20px 0 20px 35px;
  border-left: 1px solid #ffffff40;
}
.ef-home .ef-contact-details p {
  margin: 0 0 6px;
}
.ef-home .ef-contact-details > a {
  display: block;
  text-decoration: underline;
  color: #fff;
  font-size: clamp(15px, 1.5vw, 20px);
  overflow-wrap: anywhere;
}
.ef-home .ef-contact-details > span {
  display: block;
  margin-top: 25px;
  font-size: 12px;
}
.ef-home .ef-footer {
  padding: 65px 0 0;
  background: #fff;
  color: #50564c;
}
.ef-home .ef-footer::before,
.ef-home .ef-footer::after {
  display: none;
}
.ef-home .ef-footer-brand {
  display: inline-block;
  width: 160px;
  margin-bottom: 16px;
}
.ef-home .ef-footer .col-lg-4 > p {
  max-width: 295px;
  font-size: 13px;
  margin-bottom: 0;
}
.ef-home .ef-footer .ef-footer-title {
  margin: 8px 0 23px;
  font-size: 14px;
  font-weight: 600;
  color: #161a14;
}
.ef-home .ef-footer ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
.ef-home .ef-footer li {
  margin-bottom: 10px;
  font-size: 12px;
}
.ef-home .ef-footer li a {
  display: inline-block;
  min-height: 24px;
  overflow-wrap: anywhere;
}
.ef-home .ef-footer address {
  font-size: 12px;
  font-style: normal;
  line-height: 1.8;
  margin: 0;
}
.ef-home .ef-footer address strong {
  display: block;
  font-weight: 500;
  color: #161a14;
}
.ef-home .ef-footer address strong:not(:first-child) {
  margin-top: 16px;
}
.ef-home .ef-footer-bottom {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  margin-top: 50px;
  padding: 23px 0;
  border-top: 1px solid #dfe3d8;
  font-size: 11px;
}
.ef-home .ef-footer-bottom p {
  margin: 0;
}
.ef-home .ef-policy-links {
  display: flex;
  gap: 24px;
}
.ef-home .ef-policy-links [aria-disabled="true"] {
  cursor: default;
  color: #62685b;
}
@media (min-width: 1600px) {
  .ef-home .ef-hero {
    max-width: 1800px;
    margin-inline: auto;
  }
}
@media (max-width: 1199px) {
  .ef-home .ef-nav {
    gap: 24px;
  }
  .ef-home .ef-nav ul {
    gap: 20px;
  }
  .ef-home .ef-header-cta {
    max-width: 170px;
  }
  .ef-home .ef-header-inner {
    gap: 22px;
  }
  .ef-home .ef-about-copy {
    padding-left: 0;
  }
}
@media (max-width: 991px) {
  .ef-home .ef-section {
    padding: 70px 0;
  }
  .ef-home .ef-header-inner {
    flex-wrap: wrap;
    padding-block: 12px;
    min-height: 88px;
    gap: 0;
  }
  .ef-home .ef-brand,
  .ef-home .ef-brand img {
    width: 126px;
    flex-basis: 126px;
  }
  .ef-home .ef-menu-toggle:not([hidden]) {
    display: inline-flex;
  }
  .ef-home .ef-nav {
    flex-basis: 100%;
    flex-direction: column;
    align-items: stretch;
    padding: 20px 0 10px;
    gap: 10px;
  }
  .ef-home .ef-nav ul {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
  }
  .ef-home .ef-nav li a {
    min-height: 46px;
    border-bottom: 1px solid #dfe3d8;
    font-size: 15px;
  }
  .ef-home .ef-header-cta {
    align-self: flex-start;
    max-width: none;
  }
  .ef-home .ef-hero {
    padding-top: 64px;
  }
  .ef-home .ef-hero h1 {
    font-size: 58px;
  }
  .ef-home .ef-hero-content {
    max-width: 650px;
    padding-bottom: 52px;
  }
  .ef-home .ef-hero-bottom span:last-child {
    display: none;
  }
  .ef-home .ef-about-image > img {
    height: 340px;
  }
  .ef-home .ef-about-copy {
    padding: 0;
  }
  .ef-home .ef-solar-figure {
    padding-left: 0;
  }
  .ef-home .ef-solar-figure img {
    height: 380px;
  }
  .ef-home .ef-project .project-image img {
    height: 360px;
  }
  .ef-home .ef-contact-details {
    border-left: 0;
    border-top: 1px solid #ffffff40;
    padding: 25px 0 0;
  }
  .ef-home .ef-quick-links a:last-child {
    display: none;
  }
}
@media (max-width: 767px) {
  .ef-home .container {
    padding-inline: 24px;
  }
  .ef-home .ef-topbar {
    padding: 7px 0;
  }
  .ef-home .ef-topbar p {
    font-size: 10px;
  }
  .ef-home .ef-topbar p span {
    padding-inline: 6px;
  }
  .ef-home .ef-quick-links {
    display: none;
  }
  .ef-home .ef-section {
    padding: 58px 0;
  }
  .ef-home .ef-hero {
    margin: 0 10px;
    border-radius: 18px;
    padding-top: 45px;
  }
  .ef-home .ef-hero .container {
    padding-inline: 22px;
  }
  .ef-home .ef-hero-picture img {
    object-position: 58% center;
  }
  .ef-home .ef-hero-picture::after {
    background: rgba(12, 22, 15, 0.76);
  }
  .ef-home .ef-hero h1 {
    font-size: clamp(34px, 8.9vw, 53px);
  }
  .ef-home .ef-hero-eyebrow {
    font-size: 10px;
    letter-spacing: 0.12em;
  }
  .ef-home .ef-hero-intro {
    font-size: 14px;
    line-height: 1.85;
  }
  .ef-home .ef-hero-content {
    padding-bottom: 30px;
  }
  .ef-home .ef-hero .ef-actions {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }
  .ef-home .ef-hero-bottom {
    padding-block: 18px;
    font-size: 9px;
    letter-spacing: 0;
  }
  .ef-home h2 {
    font-size: 32px;
  }
  .ef-home .ef-about-image > img {
    height: 260px;
  }
  .ef-home .ef-since {
    right: 12px;
    padding: 15px 22px;
  }
  .ef-home .ef-since strong {
    font-size: 27px;
  }
  .ef-home .ef-section-heading {
    display: block;
    margin-bottom: 30px;
  }
  .ef-home .ef-section-heading > p {
    margin-top: 20px;
  }
  .ef-home .ef-service {
    padding: 25px;
  }
  .ef-home .ef-service-top {
    margin-bottom: 24px;
  }
  .ef-home .ef-service h3 br {
    display: none;
  }
  .ef-home .ef-service h3 {
    font-size: 24px;
  }
  .ef-home .ef-card-link {
    font-size: 13px;
  }
  .ef-home .ef-solar-figure img {
    height: 320px;
  }
  .ef-home .ef-project .project-image img {
    height: 360px;
  }
  .ef-home .ef-projects-footer {
    text-align: left;
  }
  .ef-home .ef-reason {
    gap: 20px;
  }
  .ef-home .ef-contact {
    margin: 0 10px;
    padding: 48px 0;
    border-radius: 18px;
  }
  .ef-home .ef-contact .ef-actions {
    align-items: flex-start;
    flex-direction: column;
    gap: 12px;
  }
  .ef-home .ef-contact .ef-button {
    gap: 12px;
    font-size: 13px;
    padding-inline: 17px;
  }
  .ef-home .ef-footer {
    padding-top: 48px;
  }
  .ef-home .ef-footer .col-6 {
    width: 100%;
  }
  .ef-home .ef-footer .ef-footer-title {
    margin-top: 0;
    margin-bottom: 14px;
  }
  .ef-home .ef-footer li a {
    padding-block: 5px;
  }
  .ef-home .ef-footer-bottom {
    margin-top: 32px;
    flex-direction: column;
    gap: 10px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .ef-home *,
  .ef-home *::before,
  .ef-home *::after {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }
}
/* Chi siamo: About template, using the approved Home components. */
.ef-home .ef-page-header {
  position: relative;
  width: auto;
  margin: 0 20px;
  padding: 66px 0;
  border-radius: 24px;
  background: #202c1b;
  color: #fff;
}
.ef-home .ef-page-header::before {
  display: none;
}
.ef-home .page-header-box {
  text-align: left;
}
.ef-home .ef-page-header h1 {
  margin: 0 0 22px;
  color: #fff;
  font-size: clamp(44px, 6vw, 76px);
  line-height: 1.08;
}
.ef-home .breadcrumb {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
  color: #fff;
}
.ef-home .breadcrumb-item {
  display: flex;
  align-items: center;
  gap: 12px;
  color: #fff;
}
.ef-home .breadcrumb-item + .breadcrumb-item::before {
  content: "›";
  color: #c7e78a;
}
.ef-home .breadcrumb a {
  color: #fff;
  text-decoration: underline;
}
.ef-home .breadcrumb a:hover {
  color: #c7e78a;
}
.ef-home .breadcrumb a:focus-visible {
  outline-color: #fff;
}
.ef-about-page .ef-about-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}
.ef-about-page .ef-service {
  margin: 0;
}
.ef-about-page .ef-about-lead {
  font-size: 20px;
  margin-bottom: 30px;
}
.ef-about-page .ef-competenza {
  display: flex;
  flex-direction: column;
}
.ef-about-page .ef-competenza .ef-check-list {
  flex: 1;
  margin: 20px 0 28px;
}
.ef-about-page .ef-about-work figure {
  margin: 0;
}
.ef-about-page .ef-about-work img {
  width: 100%;
  aspect-ratio: 2.1;
  object-fit: cover;
  object-position: center 60%;
  border-radius: 20px;
}
.ef-about-page .ef-about-work figcaption {
  margin-top: 12px;
  font-size: 13px;
}
@media (max-width: 991px) {
  .ef-about-page .ef-about-grid {
    grid-template-columns: 1fr;
  }
  .ef-about-page .ef-service h3 {
    min-height: 0;
  }
}
@media (max-width: 575px) {
  .ef-home .ef-page-header {
    margin: 0 10px;
    padding: 42px 0;
    border-radius: 20px;
  }
  .ef-about-page .ef-about-work img {
    aspect-ratio: 1.2;
  }
}
/* Photovoltaic service: Lineman Service Detail layout, shared visual identity. */
.ef-solar-page .ef-service-layout {
  display: grid;
  grid-template-columns: 280px minmax(0, 1fr);
  gap: 56px;
  margin-inline: 0;
}
.ef-solar-page .ef-service-layout > div {
  width: auto;
  padding: 0;
  min-width: 0;
}
.ef-solar-page .ef-service-index {
  position: sticky;
  top: 28px;
  padding: 26px;
  border: 1px solid var(--ef-line);
  border-radius: 18px;
  background: var(--secondary-color);
}
.ef-solar-page .ef-service-index ul {
  list-style: none;
  padding: 0;
  margin: 0 0 26px;
}
.ef-solar-page .ef-service-index li {
  border-bottom: 1px solid var(--ef-line);
}
.ef-solar-page .ef-service-index li a {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 12px 0;
  font-size: 14px;
}
.ef-solar-page .ef-service-index .ef-button {
  white-space: normal;
  font-size: 13px;
  padding: 16px;
}
.ef-solar-page .ef-service-section {
  margin: 0 0 64px;
  padding: 0 0 64px;
  border-bottom: 1px solid var(--ef-line);
}
.ef-solar-page .ef-service-section:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
  border: 0;
}
.ef-solar-page .ef-service-section h2 {
  font-size: clamp(30px, 3vw, 42px);
}
.ef-solar-page .ef-service-photo {
  margin: 28px 0;
}
.ef-solar-page .ef-service-photo img {
  width: 100%;
  aspect-ratio: 1.75;
  object-fit: cover;
  border-radius: 18px;
}
.ef-solar-page .ef-service-photo figcaption {
  font-size: 12px;
  margin-top: 10px;
}
.ef-solar-page .ef-solar-steps {
  list-style: none;
  padding: 0;
  margin: 28px 0 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}
.ef-solar-page .ef-solar-steps .ef-service {
  margin: 0;
  padding: 26px;
  background: var(--secondary-color);
}
.ef-solar-page .ef-solar-steps h3 {
  margin-top: 18px;
  min-height: 0;
}
.ef-solar-page .ef-storage-grid {
  display: grid;
  grid-template-columns: 1fr 0.75fr;
  gap: 32px;
}
.ef-solar-page .ef-storage-photo {
  margin: 0;
}
.ef-solar-page .ef-storage-photo img {
  aspect-ratio: 0.75;
  object-fit: cover;
}
.ef-solar-page .ef-maintenance-list {
  background: var(--secondary-color);
  border-radius: 18px;
  padding: 28px 28px 28px 44px;
}
.ef-solar-page .ef-solar-gallery {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}
.ef-solar-page .ef-solar-gallery img {
  aspect-ratio: 1.25;
}
@media (max-width: 991px) {
  .ef-solar-page .ef-service-layout {
    grid-template-columns: 1fr;
    gap: 40px;
  }
  .ef-solar-page .ef-service-index {
    position: static;
  }
  .ef-solar-page .ef-service-index ul {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 20px;
  }
  .ef-solar-page .ef-service-index .ef-button {
    width: auto;
  }
}
@media (max-width: 575px) {
  .ef-solar-page .ef-page-header h1 {
    font-size: 38px;
  }
  .ef-solar-page .ef-service-index {
    padding: 20px;
  }
  .ef-solar-page .ef-service-index ul,
  .ef-solar-page .ef-solar-steps,
  .ef-solar-page .ef-storage-grid,
  .ef-solar-page .ef-solar-gallery {
    grid-template-columns: 1fr;
  }
  .ef-solar-page .ef-service-section {
    margin-bottom: 44px;
    padding-bottom: 44px;
  }
  .ef-solar-page .ef-storage-photo img {
    max-height: 420px;
    object-fit: contain;
    background: var(--secondary-color);
  }
}

.ef-solar-page .ef-solar-steps .ef-number {
  color: #50564c;
}

.ef-solar-page .ef-service-index summary {
  cursor: pointer;
  margin: 0;
}
.ef-solar-page .ef-service-index details[open] summary {
  margin-bottom: 18px;
}
.ef-solar-page .ef-service-index summary:focus-visible {
  outline: 3px solid #304b08;
  outline-offset: 5px;
}
/* Services hub: existing Lineman service cards, one accessible link per card. */
.ef-hub .ef-hub-intro {
  padding-bottom: 44px;
}
.ef-hub .ef-hub-intro .ef-section-heading {
  align-items: flex-start;
}
.ef-hub .ef-hub-categories {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
.ef-hub .ef-hub-categories a {
  display: flex;
  gap: 24px;
  align-items: center;
  padding: 12px 20px;
  border: 1px solid var(--ef-line);
  border-radius: 8px;
  background: var(--secondary-color);
  color: var(--accent-secondary-color);
  font-size: 14px;
  font-weight: 600;
}
.ef-hub .ef-hub-group {
  padding-block: 52px;
  background: var(--secondary-color);
}
.ef-hub .ef-hub-group + .ef-hub-group {
  border-top: 1px solid var(--ef-line);
}
.ef-hub .ef-hub-group .section-title p {
  margin: 16px 0 0;
}
.ef-hub .ef-hub-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}
.ef-hub .ef-hub-card {
  margin: 0;
  padding: 0;
  height: 100%;
  overflow: visible;
}
.ef-hub .ef-hub-card > a,
.ef-hub .ef-hub-card > .ef-card-static {
  position: relative;
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: 30px;
  border-radius: 16px;
  text-decoration: none;
  color: var(--primary-color);
}
.ef-hub .ef-hub-card > a:focus-visible {
  outline: 3px solid #304b08;
  outline-offset: 5px;
}
.ef-hub .ef-hub-card > a:hover {
  background: #e9efdf;
}
.ef-hub .ef-hub-card .service-content {
  flex: 1;
}
.ef-hub .ef-hub-card h3 {
  min-height: 0;
  font-size: 24px;
  line-height: 1.25;
  margin: 0 0 16px;
}
.ef-hub .ef-hub-card p {
  color: var(--text-color);
}
.ef-hub .ef-hub-card .ef-number {
  color: var(--text-color);
}
.ef-hub .ef-hub-card .ef-card-link {
  margin-top: 24px;
}
@media (max-width: 991px) {
  .ef-hub .ef-hub-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 575px) {
  .ef-hub .ef-hub-grid {
    grid-template-columns: 1fr;
  }
  .ef-hub .ef-hub-card > a,
  .ef-hub .ef-hub-card > .ef-card-static {
    padding: 24px;
  }
  .ef-hub .ef-hub-categories {
    flex-direction: column;
  }
  .ef-hub .ef-hub-categories a {
    justify-content: space-between;
  }
  .ef-hub .ef-hub-group {
    padding-block: 40px;
  }
}

/* Priority service order requested on 7 October 2026. */
@media (min-width: 1200px) {
  .ef-hub .ef-hub-priority .ef-hub-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .ef-hub .ef-hub-priority .ef-hub-card > a,
  .ef-hub .ef-hub-priority .ef-hub-card > .ef-card-static {
    padding: 24px;
  }
  .ef-hub .ef-hub-priority h3 {
    font-size: 22px;
  }
}

/* Contact page: local assets and direct contact actions only. */
.ef-home .ef-contact-main h2,
.ef-home .ef-contact-locations h2 {
  margin-bottom: 24px;
}
.ef-home .ef-contact-main .ef-contact-form-column > p:not(.ef-eyebrow) {
  max-width: 440px;
  margin-bottom: 28px;
}
.ef-home .ef-contact-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 20px;
}
.ef-home .ef-contact-card {
  border: 1px solid #dce3d6;
  border-radius: 20px;
  padding: 28px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-width: 0;
  background: #fff;
}
.ef-home .ef-contact-card h3 {
  font-size: 23px;
  line-height: 1.35;
  margin-bottom: 12px;
  overflow-wrap: anywhere;
}
.ef-home .ef-contact-card h3 a {
  color: inherit;
}
.ef-home .ef-contact-card > p:not(.ef-eyebrow) {
  font-size: 15px;
  margin-bottom: 24px;
}
.ef-home .ef-contact-card > .ef-text-link {
  margin-top: auto;
  font-size: 15px;
}
.ef-home .ef-contact-email h3 {
  font-size: 19px;
}
.ef-home .ef-contact-locations {
  background: #f2f5ed;
}
.ef-home .ef-locations-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  margin-top: 40px;
}
.ef-home .ef-locations-grid article {
  border-top: 1px solid #cbd5c2;
  padding-top: 24px;
}
.ef-home .ef-location-number {
  color: #526546;
  font-size: 16px;
  margin-bottom: 22px;
}
.ef-home .ef-locations-grid h3 {
  font-size: 26px;
  margin-bottom: 16px;
}
.ef-home .ef-locations-grid address {
  font-style: normal;
  font-size: 20px;
  line-height: 1.6;
  margin-bottom: 0;
}
@media (max-width: 575px) {
  .ef-home .ef-contact-grid,
  .ef-home .ef-locations-grid {
    grid-template-columns: 1fr;
  }
  .ef-home .ef-contact-card {
    padding: 24px;
  }
  .ef-home .ef-locations-grid {
    gap: 32px;
  }
}
