/*
Theme Name: Double Creek
Theme URI: http://doublecreek.local/
Author: Blacksheep Creative
Description: Block theme for Double Creek Excavations & Rural Contracting.
Version: 0.4.4
Requires at least: 6.5
Tested up to: 6.9
Requires PHP: 8.0
Text Domain: double-creek
*/

:root {
  /* Brand green lives in theme.json (palette "double-creek-green"); change it there only. */
  --dc-green: var(--wp--preset--color--double-creek-green, #217539);
  --dc-green-dark: #17602c;
  --dc-yellow: #e79f22;
  --dc-cream: #e8e6e3;
  --dc-white: #ffffff;
  --dc-black: #2c2c2c;
  --dc-muted: #5f5a52;
  --dc-line: rgba(44, 44, 44, 0.24);
  --dc-radius: 12px;
  --dc-gutter: 24px;
  --dc-shell: min(1024px, calc(100vw - (var(--dc-gutter) * 2)));
  --dc-font-head: "Faculty Glyphic", Georgia, serif;
  --dc-font-body: "Poppins", "Lato", Arial, sans-serif;
  --dc-font-alt: "Lato", Arial, sans-serif;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  background: var(--dc-cream);
  color: var(--dc-black);
  font-family: var(--dc-font-body);
  font-size: 18px;
  line-height: 1.5;
}

a {
  color: inherit;
  text-decoration-thickness: 0.08em;
  text-underline-offset: 0.18em;
}

img,
svg {
  max-width: 100%;
  height: auto;
}

.wp-site-blocks {
  overflow-x: clip;
}

.dc-shell,
.dc-hero .wp-block-cover__inner-container,
.dc-focus .wp-block-cover__inner-container {
  width: var(--dc-shell);
  margin-inline: auto;
}

.dc-intro .wp-block-columns,
.dc-built .wp-block-columns,
.dc-services-intro,
.dc-service-grid,
.dc-faq h2,
.dc-faq-list,
.dc-footer-grid,
.dc-footer-copy .dc-shell {
  width: var(--dc-shell);
  margin-inline: auto;
}

.dc-main.dc-section > :where(h1, .wp-block-post-content) {
  width: var(--dc-shell);
  margin-inline: auto;
}

.alignfull {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}

.dc-site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  width: 100%;
  box-shadow: 0 1px 0 rgba(44, 44, 44, 0.08);
}

.dc-header-top {
  background: var(--dc-green);
  color: var(--dc-cream);
  min-height: 33px;
  padding-block: 5px;
}

.dc-header-top .dc-shell {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 10px;
}

.dc-header-main {
  position: relative;
  background: var(--dc-cream);
  min-height: 54px;
}

.dc-header-main .dc-shell {
  min-height: 54px;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  position: relative;
}

.dc-logo-link {
  position: absolute;
  left: 0;
  top: -28px;
  width: 118px;
  height: 118px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.dc-logo-link img {
  width: 118px;
  height: 118px;
  object-fit: contain;
  filter: drop-shadow(0 7px 10px rgba(0, 0, 0, 0.14));
}

.dc-phone-link,
.dc-social-link,
.dc-detail-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: inherit;
  text-decoration: none;
  font-weight: 700;
}

.dc-phone-link {
  color: var(--dc-cream);
  font-family: var(--dc-font-alt);
  font-size: 20px;
}

/* Tap-to-call numbers inside page copy (e.g. final call-to-action paragraphs). */
.dc-main .dc-phone-link {
  display: inline;
  color: inherit;
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  text-decoration: underline;
  text-decoration-thickness: 0.08em;
  text-underline-offset: 0.18em;
}

.dc-phone-link .dc-icon,
.dc-detail-link .dc-icon,
.dc-detail-row .dc-icon {
  color: var(--dc-yellow);
}

.dc-socials {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding-left: 4px;
  border-left: 2px solid var(--dc-yellow);
}

.dc-social-link {
  width: 22px;
  height: 22px;
  color: var(--dc-cream);
  justify-content: center;
}

.dc-icon {
  width: 1em;
  height: 1em;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: currentColor;
  flex: 0 0 auto;
}

.dc-fa-icon {
  font-style: normal;
  line-height: 1;
}

/* ------------------------------------------------------------------
   Primary navigation: core/navigation (Appearance > Editor > Navigation,
   menu "Primary Menu"). Icons come from a class on each menu item:
   dc-nav-icon dc-nav-icon--{excavator|bulldozer|trowel|tree|fence|farm|
   wheat|axe|phone|tractor}. Add one of those under the item's
   Advanced > Additional CSS class(es) to give a new item an icon.
   ------------------------------------------------------------------ */
.dc-primary-nav {
  margin-left: 138px;
  font-family: var(--dc-font-body);
}

.dc-primary-nav .wp-block-navigation__container {
  gap: 16px;
}

.dc-primary-nav .wp-block-navigation-item__content {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--dc-black);
  font-size: 16px;
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
}

.dc-primary-nav .wp-block-navigation-item__content:hover,
.dc-primary-nav .wp-block-navigation-item__content:focus-visible,
.dc-primary-nav .current-menu-item > .wp-block-navigation-item__content {
  color: var(--dc-green);
}

.dc-nav-icon > .wp-block-navigation-item__content::before {
  display: inline-block;
  width: 1.15em;
  color: var(--dc-green);
  font-family: "Font Awesome 7 Pro";
  font-weight: 900;
  font-style: normal;
  line-height: 1;
  text-align: center;
  -webkit-font-smoothing: antialiased;
}

.dc-nav-icon--excavator > .wp-block-navigation-item__content::before { content: "\e656"; }
.dc-nav-icon--bulldozer > .wp-block-navigation-item__content::before { content: "\e655"; }
.dc-nav-icon--trowel > .wp-block-navigation-item__content::before { content: "\e589"; }
.dc-nav-icon--tree > .wp-block-navigation-item__content::before { content: "\f400"; }
.dc-nav-icon--fence > .wp-block-navigation-item__content::before { content: "\e303"; }
.dc-nav-icon--farm > .wp-block-navigation-item__content::before { content: "\f864"; }
.dc-nav-icon--wheat > .wp-block-navigation-item__content::before { content: "\f72d"; }
.dc-nav-icon--axe > .wp-block-navigation-item__content::before { content: "\f6b2"; }
.dc-nav-icon--phone > .wp-block-navigation-item__content::before { content: "\f098"; }
.dc-nav-icon--tractor > .wp-block-navigation-item__content::before { content: "\f722"; }

.dc-primary-nav .wp-block-navigation__submenu-icon {
  width: 0.7em;
  height: 0.7em;
  margin-left: 4px;
  color: var(--dc-green);
}

/* Desktop dropdown card */
.dc-primary-nav .wp-block-navigation__container .wp-block-navigation__submenu-container {
  padding: 8px 10px 12px;
  border: 0;
  border-radius: 0 0 10px 10px;
  background: var(--dc-cream);
  box-shadow: 0 18px 26px rgba(0, 0, 0, 0.12);
}

.dc-primary-nav .has-child:hover > .wp-block-navigation__submenu-container,
.dc-primary-nav .has-child:focus-within > .wp-block-navigation__submenu-container,
.dc-primary-nav .wp-block-navigation__container .wp-block-navigation__submenu-container {
  min-width: 305px;
}

.dc-primary-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
  min-height: 34px;
  padding: 4px 6px;
}

/* Dropdowns near the right edge open leftwards so they stay on screen. */
.dc-primary-nav .wp-block-navigation__container > .has-child:nth-last-child(-n+2) > .wp-block-navigation__submenu-container {
  right: 0;
  left: auto;
}

/* Mobile overlay */
.dc-primary-nav .wp-block-navigation__responsive-container-open {
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  border: 2px solid var(--dc-green);
  border-radius: 8px;
  background: transparent;
  color: var(--dc-green);
  font-family: var(--dc-font-body);
  font-size: 16px;
  font-weight: 700;
}

.dc-primary-nav .wp-block-navigation__responsive-container-open::before {
  margin-right: 6px;
  content: "\f0c9";
  font-family: "Font Awesome 7 Pro";
  font-weight: 900;
}

.dc-primary-nav .wp-block-navigation__responsive-container.is-menu-open,
.dc-primary-nav:not(.has-background) .wp-block-navigation__responsive-container.is-menu-open {
  --navigation-layout-justification-setting: flex-start;
  --navigation-layout-justify: flex-start;
  --navigation-layout-align: flex-start;
  padding: 24px 24px calc(24px + env(safe-area-inset-bottom));
  /* Core paints the overlay white with a 5-class selector; this is the one
     deliberate !important so the overlay matches the cream header. */
  background-color: var(--dc-cream) !important;
  color: var(--dc-black);
}

.dc-primary-nav .is-menu-open .wp-block-navigation__responsive-container-content,
.dc-primary-nav .is-menu-open .wp-block-navigation__container,
.dc-primary-nav .is-menu-open .wp-block-navigation-item {
  align-items: flex-start;
  text-align: left;
}

.dc-primary-nav .wp-block-navigation__responsive-container-close {
  gap: 8px;
  align-items: center;
  padding: 8px 12px;
  border: 2px solid var(--dc-green);
  border-radius: 8px;
  font-family: var(--dc-font-body);
  font-size: 16px;
  font-weight: 700;
}

.dc-primary-nav .wp-block-navigation__responsive-container-close::before {
  margin-right: 6px;
  content: "\f00d";
  font-family: "Font Awesome 7 Pro";
  font-weight: 900;
}

.dc-primary-nav .is-menu-open .wp-block-navigation__responsive-container-content {
  padding-top: 36px;
}

.dc-primary-nav .is-menu-open .wp-block-navigation__container {
  gap: 6px;
}

.dc-primary-nav .is-menu-open .wp-block-navigation-item__content {
  min-height: 44px;
  font-size: 19px;
  white-space: normal;
}

.dc-primary-nav .is-menu-open .wp-block-navigation__submenu-container {
  padding: 0 0 8px 22px;
  background: transparent;
  box-shadow: none;
}

.dc-primary-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
  min-height: 44px;
  font-size: 17px;
  font-weight: 500;
}

.dc-primary-nav .wp-block-navigation__responsive-container-close {
  color: var(--dc-green);
}

/* Collapsed (menu button) state.
   - Core collapses navigation below 600px on its own.
   - 600-960px: forced here, because the full menu needs ~940px beside the logo.
   - Any width: theme.js adds .dc-nav-collapsed when the menu would run into
     the logo (e.g. after the client adds an item), so it can never overlap. */
@media (min-width: 600px) and (max-width: 960px) {
  .dc-primary-nav .wp-block-navigation__responsive-container-open:not(.always-shown) {
    display: flex;
  }

  .dc-primary-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
    display: none;
  }

  .dc-primary-nav .wp-block-navigation__responsive-container-close {
    display: flex;
  }

  .dc-primary-nav .is-menu-open .wp-block-navigation__container,
  .dc-primary-nav .is-menu-open .wp-block-navigation-item {
    flex-direction: column;
    align-items: flex-start;
  }

  .dc-primary-nav .is-menu-open .wp-block-navigation__submenu-container {
    position: static;
    visibility: visible;
    opacity: 1;
    width: auto;
    height: auto;
    min-width: 0;
    border: 0;
  }
}

.dc-primary-nav.dc-nav-collapsed .wp-block-navigation__responsive-container-open:not(.always-shown) {
  display: flex;
}

.dc-primary-nav.dc-nav-collapsed .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
  display: none;
}

.dc-primary-nav.dc-nav-collapsed .wp-block-navigation__responsive-container-close {
  display: flex;
}

.dc-primary-nav.dc-nav-collapsed .is-menu-open .wp-block-navigation__container,
.dc-primary-nav.dc-nav-collapsed .is-menu-open .wp-block-navigation-item {
  flex-direction: column;
  align-items: flex-start;
}

.dc-primary-nav.dc-nav-collapsed .is-menu-open .wp-block-navigation__submenu-container {
  position: static;
  visibility: visible;
  opacity: 1;
  width: auto;
  height: auto;
  min-width: 0;
  border: 0;
}

.dc-main {
  margin-top: 0;
}

.dc-home > * {
  margin-block-start: 0;
}

.dc-section {
  padding-block: 80px;
}

.dc-section-white {
  background: var(--dc-white);
}

.dc-section-cream {
  background: var(--dc-cream);
}

.dc-hero {
  min-height: 691px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
}

.dc-hero .wp-block-cover__inner-container {
  display: flex;
  justify-content: flex-start;
}

.dc-hero-card {
  width: min(495px, 100%);
  background: rgba(244, 244, 244, 0.95);
  border-radius: 20px;
  padding: 30px;
  color: var(--dc-black);
  box-shadow: 0 22px 50px rgba(0, 0, 0, 0.16);
}

.dc-hero-card h1,
.dc-heading,
.dc-footer h2,
.dc-faq h2,
.dc-focus-card h2,
.dc-built h2 {
  font-family: var(--dc-font-head);
  font-weight: 400;
  line-height: 1;
  color: var(--dc-green);
  letter-spacing: 0;
}

.dc-hero-card h1 {
  font-size: 42px;
  margin: 0 0 10px;
}

.dc-hero-card p {
  font-family: var(--dc-font-alt);
  font-size: 20px;
  margin: 0 0 20px;
}

.wp-block-button__link,
.dc-button {
  border: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 39px;
  padding: 8px 12px 10px;
  border-radius: var(--dc-radius);
  background: var(--dc-green);
  color: var(--dc-cream);
  font-family: var(--dc-font-head);
  font-size: 24px;
  line-height: 1;
  text-transform: lowercase;
  text-decoration: none;
  cursor: pointer;
  transition: transform 180ms ease, background-color 180ms ease, box-shadow 180ms ease;
}

.dc-quote-trigger {
  margin-top: 10px;
}

.wp-block-button__link::after,
.dc-button::after {
  content: "\f1d8";
  color: var(--dc-yellow);
  display: inline-block;
  font: var(--fa-font-solid);
  font-size: 0.68em;
  line-height: 1;
}

.wp-block-button__link:hover,
.wp-block-button__link:focus-visible,
.dc-button:hover,
.dc-button:focus-visible {
  background: var(--dc-green-dark);
  box-shadow: 0 10px 22px color-mix(in srgb, var(--dc-green-dark) 22%, transparent);
  transform: translateY(-1px);
}

.dc-intro {
  padding-block: 100px;
}

.dc-intro .wp-block-columns {
  gap: 60px;
  align-items: center;
}

.dc-circle-image img {
  aspect-ratio: 1;
  width: min(434px, 100%);
  object-fit: cover;
  border-radius: 999px;
}

.dc-intro h2 {
  font-size: 36px;
  margin: 0 0 32px;
}

.dc-intro p,
.dc-built p,
.dc-focus-card p,
.dc-faq p,
.dc-footer p,
.dc-footer li {
  font-size: 18px;
}

/* theme.json sets blockGap to 0, so stacked paragraphs in these columns need their own rhythm. */
.dc-intro .wp-block-column > p + p,
.dc-built .wp-block-column > p + p {
  margin-block-start: 14px;
}

.dc-intro .wp-block-column > p + .wp-block-buttons,
.dc-built .wp-block-column > p + .wp-block-buttons {
  margin-block-start: 22px;
}

.dc-services {
  padding-block: 60px;
}

.dc-services-intro {
  width: min(1200px, calc(100vw - 80px));
}

.dc-services h2 {
  color: var(--dc-yellow);
  font-family: var(--dc-font-head);
  font-size: clamp(48px, 7vw, 85px);
  font-weight: 400;
  line-height: 1.05;
  margin: 0 0 12px;
  text-transform: uppercase;
}

.dc-service-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  width: min(1024px, calc(100vw - 80px));
  margin: 40px auto 0;
}

.dc-service-card {
  position: relative;
  isolation: isolate;
  min-height: 206px;
  border-radius: 25px;
  background: var(--dc-white);
  color: var(--dc-black);
  text-align: center;
  box-shadow: 0 0 0 rgba(44, 44, 44, 0);
  transition: transform 180ms ease, box-shadow 180ms ease;
}

.dc-service-card__toggle {
  appearance: none;
  position: relative;
  display: block;
  width: 100%;
  min-height: inherit;
  border: 0;
  border-radius: inherit;
  padding: 0;
  background: transparent;
  color: inherit;
  cursor: pointer;
  font: inherit;
  text-align: center;
}

.dc-service-card__toggle:focus-visible {
  outline: 3px solid var(--dc-yellow);
  outline-offset: 6px;
}

.dc-service-card__front,
.dc-service-card__hover {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border-radius: inherit;
  pointer-events: none;
  transition: opacity 180ms ease, transform 180ms ease, visibility 180ms ease;
}

.dc-service-card__front {
  z-index: 2;
  gap: 10px;
  padding: 20px 14px;
  border: 3px solid var(--dc-black);
  background: var(--dc-white);
}

.dc-service-card:hover,
.dc-service-card:focus-within,
.dc-service-card.is-active {
  box-shadow: 0 16px 28px rgba(44, 44, 44, 0.12);
  transform: translateY(-2px);
}

.dc-service-card__hover {
  z-index: 1;
  gap: 16px;
  padding: 26px 20px 64px;
  border: 3px solid var(--dc-yellow);
  background: var(--dc-green);
  color: var(--dc-white);
  font-family: var(--dc-font-body);
  font-size: 17px;
  line-height: 1.32;
  opacity: 0;
  transform: translateY(10px);
}

.dc-service-card:hover .dc-service-card__front,
.dc-service-card:focus-within .dc-service-card__front,
.dc-service-card.is-active .dc-service-card__front {
  opacity: 0;
  transform: translateY(-8px);
  visibility: hidden;
}

.dc-service-card:hover .dc-service-card__hover,
.dc-service-card:focus-within .dc-service-card__hover,
.dc-service-card.is-active .dc-service-card__hover {
  opacity: 1;
  transform: translateY(0);
}

.dc-service-card__description {
  display: block;
}

.dc-service-card__read-more {
  position: absolute;
  z-index: 4;
  left: 50%;
  bottom: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  padding: 6px 14px;
  border: 2px solid var(--dc-yellow);
  border-radius: 999px;
  background: var(--dc-cream);
  color: var(--dc-green);
  font-family: var(--dc-font-head);
  font-size: 18px;
  line-height: 1;
  text-decoration: none;
  text-transform: lowercase;
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, 8px);
  visibility: hidden;
  transition: opacity 180ms ease, transform 180ms ease, visibility 180ms ease, background-color 180ms ease;
}

.dc-service-card__read-more::after {
  content: "\f1d8";
  color: var(--dc-yellow);
  display: inline-block;
  font: var(--fa-font-solid);
  font-size: 0.7em;
  line-height: 1;
  margin-left: 8px;
}

.dc-service-card:hover .dc-service-card__read-more,
.dc-service-card:focus-within .dc-service-card__read-more,
.dc-service-card.is-active .dc-service-card__read-more {
  opacity: 1;
  pointer-events: auto;
  transform: translate(-50%, 0);
  visibility: visible;
}

.dc-service-card__read-more:hover,
.dc-service-card__read-more:focus-visible {
  background: var(--dc-white);
  outline: none;
}

@media (hover: none), (pointer: coarse) {
  .dc-service-card:not(.is-active):hover .dc-service-card__read-more {
    opacity: 0;
    pointer-events: none;
    transform: translate(-50%, 8px);
    visibility: hidden;
  }
}

.dc-service-card .dc-icon {
  width: 60px;
  height: 60px;
  color: var(--dc-green);
  font-size: 60px;
}

.dc-service-grid--editor .dc-service-card__toggle {
  cursor: default;
}

.dc-service-grid--editor .dc-service-card:hover,
.dc-service-grid--editor .dc-service-card:focus-within {
  transform: none;
}

.dc-service-grid--editor .dc-service-card:hover .dc-service-card__front,
.dc-service-grid--editor .dc-service-card:focus-within .dc-service-card__front {
  opacity: 1;
  transform: none;
  visibility: visible;
}

.dc-service-grid--editor .dc-service-card:hover .dc-service-card__hover,
.dc-service-grid--editor .dc-service-card:focus-within .dc-service-card__hover,
.dc-service-grid--editor .dc-service-card:hover .dc-service-card__read-more,
.dc-service-grid--editor .dc-service-card:focus-within .dc-service-card__read-more {
  opacity: 0;
  pointer-events: none;
  transform: translateY(10px);
  visibility: hidden;
}

.dc-service-card__title {
  display: block;
  font-family: var(--dc-font-alt);
  font-size: 22px;
  line-height: 1.2;
  color: var(--dc-black);
}

.dc-built {
  padding-block: 70px;
}

.dc-built .wp-block-columns {
  gap: 50px;
  align-items: stretch;
}

.dc-built .wp-block-column > h2 {
  margin: 0 0 24px;
}

.dc-tall-image,
.dc-tall-image img {
  height: 100%;
  min-height: 620px;
}

.dc-tall-image img {
  width: 100%;
  object-fit: cover;
}

.dc-built h2 {
  font-size: 36px;
  margin-top: 0;
}

.dc-built h3,
.dc-focus-card h3 {
  font-family: var(--dc-font-head);
  font-size: 30px;
  font-weight: 400;
  color: var(--dc-green);
  margin: 28px 0 12px;
}

.dc-built ul,
.dc-focus-card ul {
  margin: 0 0 22px 1.15em;
  padding: 0;
}

.dc-built li {
  margin-bottom: 4px;
}

.dc-focus {
  min-height: 760px;
  padding: 0;
}

.dc-focus .wp-block-cover__inner-container {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  width: 100%;
  max-width: none;
  margin-inline: 0;
  padding-block: 60px;
  box-sizing: border-box;
}

.dc-focus-card {
  width: min(580px, calc(100vw - 48px));
  margin-left: auto;
  margin-right: 0;
  background: var(--dc-cream);
  padding: 40px;
  border-radius: 25px 0 0 25px;
  color: var(--dc-black);
  box-shadow: -18px 20px 50px rgba(0, 0, 0, 0.12);
}

.dc-focus-card h2 {
  font-size: 30px;
  margin: 0 0 12px;
}

.dc-focus-card p {
  margin: 0 0 12px;
}

.dc-focus-card strong {
  color: var(--dc-green);
}

.dc-service-copy h2,
.dc-service-cover-card h2,
.dc-service-final-cta h2 {
  color: var(--dc-green);
  font-family: var(--dc-font-head);
  font-size: 36px;
  font-weight: 400;
  line-height: 1;
  margin: 0 0 28px;
}

.dc-service-copy p,
.dc-service-cover-card p,
.dc-service-final-cta p {
  margin: 0 0 18px;
}

.dc-service-copy strong,
.dc-service-cover-card strong {
  color: var(--dc-green);
}

.dc-service-intro,
.dc-service-detail,
.dc-service-final-cta {
  padding-block: 80px;
}

.dc-service-intro .wp-block-columns,
.dc-service-detail .wp-block-columns,
.dc-service-final-cta .wp-block-columns {
  width: var(--dc-shell);
  margin-inline: auto;
  gap: 60px;
  align-items: stretch;
}

.dc-service-intro-image,
.dc-service-intro-image img {
  height: 100%;
  min-height: 526px;
}

.dc-service-intro-image img,
.dc-service-square-image img,
.dc-service-final-image img {
  width: 100%;
  object-fit: cover;
}

.dc-service-detail .wp-block-columns {
  align-items: flex-start;
}

.dc-service-image-stack {
  display: grid;
  gap: 20px;
}

.dc-service-square-image {
  margin: 0;
}

.dc-service-square-image img,
.dc-service-final-image img {
  aspect-ratio: 6 / 5;
  display: block;
}

.dc-service-cover {
  min-height: 873px;
  display: flex;
  align-items: center;
}

.dc-service-cover .wp-block-cover__inner-container {
  width: var(--dc-shell);
  margin-inline: auto;
  display: flex;
  justify-content: center;
}

.dc-service-cover-card {
  width: min(800px, 100%);
  background: var(--dc-white);
  padding: 40px;
  color: var(--dc-black);
}

.dc-service-cover-card h2 {
  margin-bottom: 14px;
}

.dc-service-cover-card .dc-button {
  margin-top: 12px;
}

.dc-service-final-cta h2 {
  margin-bottom: 8px;
}

.dc-machine-help {
  padding-block: 80px;
}

.dc-machine-help__inner {
  width: var(--dc-shell);
  margin-inline: auto;
}

.dc-machine-help h2 {
  color: var(--dc-green);
  font-family: var(--dc-font-head);
  font-size: 48px;
  font-weight: 400;
  line-height: 1.1;
  margin: 0 0 46px;
}

.dc-machine-help-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 26px 34px;
}

.dc-machine-help-card {
  min-height: 300px;
  padding: 26px 18px 22px;
  border-radius: 0;
  background: var(--dc-white);
  color: var(--dc-black);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--dc-green) 14%, transparent);
}

.dc-machine-help-card__head {
  display: grid;
  grid-template-columns: 60px minmax(0, 1fr);
  gap: 20px;
  align-items: center;
  min-height: 62px;
  margin-bottom: 22px;
  padding: 0 0 18px;
  border-bottom: 2px solid var(--dc-green);
  background: var(--dc-green);
  color: var(--dc-white);
  margin-inline: -18px;
  margin-top: -26px;
  padding-inline: 18px;
  padding-top: 20px;
}

.dc-machine-help-card__head .dc-icon {
  width: 48px;
  height: 48px;
  color: var(--dc-white);
  font-size: 44px;
}

.dc-machine-help-card h3 {
  margin: 0;
  color: var(--dc-white);
  font-family: var(--dc-font-head);
  font-size: 22px;
  font-weight: 400;
  line-height: 1.15;
}

.dc-machine-help-card p {
  margin: 0 0 20px;
  font-size: 16px;
  line-height: 1.45;
}

.dc-machine-help-card .dc-button {
  min-height: 34px;
  padding: 7px 11px 6px;
  font-size: 20px;
}

.dc-machine-final-cta {
  background: var(--dc-green);
  color: var(--dc-cream);
  padding-block: 80px;
}

.dc-machine-final-cta .wp-block-columns {
  width: var(--dc-shell);
  margin-inline: auto;
  gap: 60px;
  align-items: center;
}

.dc-machine-final-cta h2 {
  margin: 0 0 10px;
  color: var(--dc-cream);
  font-family: var(--dc-font-head);
  font-size: 42px;
  font-weight: 400;
  line-height: 1.05;
}

.dc-machine-final-cta p {
  margin: 0 0 18px;
  color: var(--dc-cream);
  font-size: 22px;
  line-height: 1.4;
}

.dc-machine-final-cta .dc-button {
  background: var(--dc-cream);
  color: var(--dc-green);
}

.dc-machine-final-cta .dc-button:hover,
.dc-machine-final-cta .dc-button:focus-visible {
  background: var(--dc-white);
}

.dc-machine-final-image {
  margin: 0;
}

.dc-machine-final-image img {
  aspect-ratio: 6 / 5;
  display: block;
  width: 100%;
  object-fit: cover;
}

.dc-vegetation-work {
  padding-block: 80px;
}

.dc-vegetation-work__inner {
  width: var(--dc-shell);
  margin-inline: auto;
}

.dc-vegetation-work h2 {
  color: var(--dc-green);
  font-family: var(--dc-font-head);
  font-size: 48px;
  font-weight: 400;
  line-height: 1;
  margin: 0 auto 60px;
  text-align: center;
}

.dc-vegetation-card-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 40px;
}

.dc-vegetation-card {
  display: flex;
  flex-direction: column;
  min-height: 0;
  overflow: hidden;
  background: var(--dc-white);
  border-radius: 20px 20px 0 0;
}

.dc-vegetation-card__image {
  display: block;
  width: 100%;
  aspect-ratio: 492 / 260;
  object-fit: cover;
  border-radius: 20px 20px 0 0;
}

.dc-vegetation-card__body {
  display: flex;
  flex: 1;
  flex-direction: column;
  align-items: flex-start;
  gap: 14px;
  min-height: 260px;
  padding: 20px;
  border: 3px solid var(--dc-black);
  border-top: 0;
  border-radius: 0 0 12px 12px;
}

.dc-vegetation-card h3 {
  margin: 0;
  color: var(--dc-green);
  font-family: var(--dc-font-head);
  font-size: 24px;
  font-weight: 400;
  line-height: 1.1;
}

.dc-vegetation-card p {
  flex: 1;
  margin: 0;
  color: var(--dc-black);
  font-size: 17px;
  line-height: 1.45;
}

.dc-vegetation-card .dc-button {
  margin-top: auto;
}

.dc-vegetation-cover .wp-block-cover__inner-container {
  width: 100%;
  max-width: none;
  display: flex;
  justify-content: flex-start;
}

.dc-vegetation-cover .dc-service-cover-card {
  width: min(554px, calc(100vw - 48px));
  margin-left: 0;
  background: var(--dc-cream);
  border-radius: 0 25px 25px 0;
}

.dc-vegetation-final-cta strong {
  color: var(--dc-green);
  font-weight: 400;
}

.dc-rural-fencing-image-stack {
  display: grid;
  gap: 60px;
}

.dc-rural-fencing-image-stack .dc-service-square-image img {
  border-radius: 12px;
}

.dc-rural-fencing-cover .dc-service-cover-card {
  background: var(--dc-cream);
  border-radius: 25px;
}

.dc-rural-fencing-list .dc-service-copy {
  max-width: var(--dc-shell);
}

.dc-rural-fencing-list h2 {
  margin-bottom: 16px;
}

.dc-rural-fencing-fit {
  padding-block: 100px;
}

.dc-rural-fencing-fit .wp-block-columns {
  width: var(--dc-shell);
  margin-inline: auto;
  gap: 60px;
  align-items: center;
}

.dc-rural-fencing-fit h2 {
  color: var(--dc-green);
  font-family: var(--dc-font-head);
  font-size: 36px;
  font-weight: 400;
  line-height: 1;
  margin: 0 0 28px;
}

.dc-rural-fencing-fit p {
  margin: 0 0 18px;
}

.dc-rural-fencing-circle {
  margin: 0 auto;
  max-width: 434px;
}

.dc-rural-fencing-circle img {
  aspect-ratio: 1;
  display: block;
  width: 100%;
  object-fit: cover;
  border-radius: 999px;
}

.dc-rural-fencing-final-cta strong {
  color: var(--dc-green);
  font-weight: 400;
}

.dc-property-entry-intro .wp-block-columns {
  align-items: center;
}

.dc-property-entry-circle {
  margin: 0 auto;
  max-width: 430px;
}

.dc-property-entry-circle img {
  aspect-ratio: 1;
  display: block;
  width: 100%;
  object-fit: cover;
  border-radius: 999px;
}

.dc-property-entry-work {
  padding-block: 80px;
}

.dc-property-entry-work__inner {
  width: var(--dc-shell);
  margin-inline: auto;
}

.dc-property-entry-work h2 {
  margin: 0 auto 42px;
  color: var(--dc-green);
  font-family: var(--dc-font-head);
  font-size: 48px;
  font-weight: 400;
  line-height: 1.05;
  text-align: center;
}

.dc-property-entry-card-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 28px;
  margin-bottom: 34px;
}

.dc-property-entry-card {
  min-height: 260px;
  overflow: hidden;
  background: var(--dc-white);
  border: 3px solid var(--dc-black);
  border-radius: 14px;
  box-shadow: 0 10px 24px rgba(44, 44, 44, 0.08);
}

.dc-property-entry-card h3 {
  margin: 0;
  padding: 16px 18px 15px;
  background: var(--dc-yellow);
  color: var(--dc-black);
  font-family: var(--dc-font-head);
  font-size: 24px;
  font-weight: 400;
  line-height: 1.1;
}

.dc-property-entry-card p {
  margin: 0;
  padding: 20px 18px 24px;
  color: var(--dc-black);
  font-size: 16px;
  line-height: 1.45;
}

.dc-property-entry-work .dc-button {
  margin-top: 2px;
}

.dc-property-entrances-cover .wp-block-cover__inner-container {
  width: 100%;
  max-width: none;
  display: flex;
  justify-content: flex-end;
}

.dc-property-entrances-cover .dc-service-cover-card {
  width: min(620px, calc(100vw - 48px));
  margin-right: 0;
  background: var(--dc-cream);
  border-radius: 25px 0 0 25px;
}

.dc-property-entry-considerations .dc-property-entry-detail-image img {
  aspect-ratio: 5 / 6;
  min-height: 560px;
}

.dc-property-entry-considerations p {
  margin-bottom: 16px;
}

.dc-property-entrances-final-cta .wp-block-columns {
  align-items: center;
}

.dc-property-entrances-final-cta strong {
  color: var(--dc-green);
  font-weight: 400;
}

.dc-property-entrances-final-cta .dc-service-final-image {
  margin: 0;
}

.dc-property-entrances-final-cta .dc-service-final-image img {
  aspect-ratio: 1;
  border-radius: 999px;
}

.dc-rural-contracting-intro .wp-block-columns {
  align-items: center;
}

.dc-rural-contracting-circle {
  margin: 0 auto;
  max-width: 430px;
}

.dc-rural-contracting-circle img {
  aspect-ratio: 1;
  display: block;
  width: 100%;
  object-fit: cover;
  border-radius: 999px;
}

.dc-rural-contracting-work {
  padding-block: 80px;
}

.dc-rural-contracting-work__inner {
  width: var(--dc-shell);
  margin-inline: auto;
}

.dc-rural-contracting-work h2 {
  margin: 0 auto 42px;
  color: var(--dc-green);
  font-family: var(--dc-font-head);
  font-size: 48px;
  font-weight: 400;
  line-height: 1.05;
  text-align: center;
}

.dc-rural-contracting-card-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 28px;
  margin-bottom: 34px;
}

.dc-rural-contracting-card {
  min-height: 260px;
  overflow: hidden;
  background: var(--dc-white);
  border: 3px solid var(--dc-black);
  border-radius: 14px;
  box-shadow: 0 10px 24px rgba(44, 44, 44, 0.08);
}

.dc-rural-contracting-card h3 {
  margin: 0;
  padding: 16px 18px 15px;
  background: var(--dc-green);
  color: var(--dc-white);
  font-family: var(--dc-font-head);
  font-size: 24px;
  font-weight: 400;
  line-height: 1.1;
}

.dc-rural-contracting-card p {
  margin: 0;
  padding: 20px 18px 24px;
  color: var(--dc-black);
  font-size: 16px;
  line-height: 1.45;
}

.dc-rural-contracting-work .dc-button {
  margin-top: 2px;
}

.dc-rural-contracting-cover .wp-block-cover__inner-container {
  width: 100%;
  max-width: none;
  display: flex;
  justify-content: flex-start;
}

.dc-rural-contracting-cover .dc-service-cover-card {
  width: min(620px, calc(100vw - 48px));
  margin-left: 0;
  background: var(--dc-cream);
  border-radius: 0 25px 25px 0;
}

.dc-rural-contracting-considerations .dc-rural-contracting-detail-image img {
  aspect-ratio: 5 / 6;
  min-height: 560px;
}

.dc-rural-contracting-considerations p {
  margin-bottom: 16px;
}

.dc-rural-contracting-final-cta .wp-block-columns {
  align-items: center;
}

.dc-rural-contracting-final-cta strong {
  color: var(--dc-green);
  font-weight: 400;
}

.dc-rural-contracting-final-cta .dc-service-final-image {
  margin: 0;
}

.dc-rural-contracting-final-cta .dc-service-final-image img {
  aspect-ratio: 1;
  border-radius: 999px;
}

.dc-faq {
  padding-block: 80px;
}

.dc-faq h2 {
  font-size: 48px;
  text-align: center;
  text-transform: uppercase;
  margin: 0 0 22px;
}

.dc-faq-list {
  width: var(--dc-shell);
}

.dc-faq details {
  border: 0;
  background: transparent;
  margin-bottom: 10px;
  padding: 0;
}

.dc-faq summary {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  cursor: pointer;
  border: 2px solid var(--dc-green);
  background: var(--dc-white);
  color: var(--dc-black);
  font-family: var(--dc-font-alt);
  font-size: 24px;
  font-weight: 700;
  min-height: 50px;
  padding: 10px;
  list-style: none;
}

.dc-faq summary::-webkit-details-marker {
  display: none;
}

.dc-faq summary::after {
  content: "\f078";
  flex: 0 0 auto;
  color: var(--dc-green);
  font: var(--fa-font-solid);
  font-size: 18px;
  line-height: 1.4;
  transition: transform 180ms ease;
}

.dc-faq details[open] summary::after {
  transform: rotate(180deg);
}

.dc-faq details p {
  max-width: 933px;
  margin: 20px auto 22px;
  font-family: var(--dc-font-alt);
  font-size: 24px;
  line-height: 1.35;
}

.dc-footer {
  margin-top: 0;
}

.dc-footer-contact {
  background: var(--dc-cream);
  padding-block: 84px 58px;
}

.dc-footer-grid {
  display: grid;
  grid-template-columns: minmax(0, 660px) minmax(0, 800px);
  gap: clamp(92px, 8.8vw, 210px);
  align-items: start;
  width: min(1668px, calc(100vw - 96px));
}

.dc-footer h2 {
  font-size: clamp(42px, 2.7vw, 56px);
  text-transform: uppercase;
  line-height: 0.98;
  margin: 0 0 22px;
}

.dc-detail-list {
  list-style: none;
  margin: 0 0 26px;
  padding: 0;
}

.dc-footer .dc-detail-row {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 6px;
  color: var(--dc-black);
  font-family: var(--dc-font-body);
  font-size: 24px;
  font-weight: 400;
  line-height: 1.3;
}

.dc-footer .dc-detail-row .dc-icon {
  flex: 0 0 auto;
  font-size: 20px;
  width: 1.1em;
}

.dc-footer .dc-socials {
  border-left: 0;
  padding-left: 0;
  gap: 16px;
}

.dc-footer .dc-phone-link,
.dc-footer .dc-detail-link {
  color: var(--dc-black);
  font-family: var(--dc-font-body);
  font-size: 24px;
  font-weight: 400;
  line-height: 1.3;
}

.dc-footer .dc-phone-link span,
.dc-footer .dc-detail-link span {
  font-size: inherit;
  line-height: inherit;
}

.dc-footer .dc-social-link {
  color: var(--dc-yellow);
  width: 34px;
  height: 34px;
  font-size: 34px;
}

.dc-service-areas {
  margin-top: 42px;
}

.dc-footer .dc-service-areas h2 {
  margin: 0 0 18px;
}

.dc-service-areas p {
  max-width: 640px;
  margin: 0;
  font-family: var(--dc-font-body);
  font-size: 24px;
  font-weight: 400;
  line-height: 1.35;
}

.dc-form-wrap {
  width: 100%;
  max-width: 800px;
}

.dc-form-wrap .gfield_label,
.dc-form-wrap .gform_wrapper.gravity-theme .gfield_label {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.dc-form-wrap .gform_fields,
.dc-form-wrap .gform_wrapper.gravity-theme .gform_fields {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 16px !important;
}

.dc-form-wrap .gfield,
.dc-form-wrap .gform_wrapper.gravity-theme .gfield {
  margin: 0 !important;
}

.dc-form-wrap input[type="text"],
.dc-form-wrap input[type="email"],
.dc-form-wrap input[type="tel"],
.dc-form-wrap textarea,
.dc-form-wrap .gform_wrapper.gravity-theme input[type="text"],
.dc-form-wrap .gform_wrapper.gravity-theme input[type="email"],
.dc-form-wrap .gform_wrapper.gravity-theme input[type="tel"],
.dc-form-wrap .gform_wrapper.gravity-theme textarea {
  width: 100% !important;
  border: 3px solid var(--dc-black) !important;
  border-radius: 0 !important;
  min-height: 64px !important;
  padding: 9px 13px !important;
  background: var(--dc-white) !important;
  color: var(--dc-black) !important;
  box-shadow: none !important;
  font-family: var(--dc-font-body) !important;
  font-size: 24px !important;
  font-weight: 400 !important;
  line-height: 1.2 !important;
}

.dc-form-wrap textarea,
.dc-form-wrap .gform_wrapper.gravity-theme textarea {
  min-height: 226px !important;
  resize: vertical;
}

.dc-form-wrap .gform_footer,
.dc-form-wrap .gform_wrapper.gravity-theme .gform_footer {
  margin: 16px 0 0 !important;
  padding: 0 !important;
}

.dc-form-wrap .gform_footer,
.dc-form-wrap .gform_wrapper.gravity-theme .gform_footer {
  align-items: flex-start !important;
}

/* Contact form submit matches the site's .dc-button (green, cream, lowercase, plane icon).
   align-self + height stop GF 3's flex footer stretching it to the height of its other children. */
.dc-form-wrap .gform_button,
.dc-form-wrap .gform_wrapper.gravity-theme .gform_button {
  align-self: flex-start !important;
  display: inline-flex !important;
  align-items: center;
  gap: 8px;
  height: auto !important;
  min-height: 44px !important;
  width: auto !important;
  border: 0 !important;
  border-radius: var(--dc-radius) !important;
  background: var(--dc-green) !important;
  color: var(--dc-cream) !important;
  cursor: pointer;
  font-family: var(--dc-font-head) !important;
  font-size: 24px !important;
  font-weight: 400 !important;
  line-height: 1 !important;
  padding: 8px 14px 10px !important;
  text-transform: lowercase !important;
  transition: background-color 180ms ease, transform 180ms ease, box-shadow 180ms ease;
}

.dc-form-wrap .gform_button .dc-icon {
  color: var(--dc-yellow);
  font-size: 0.68em;
  line-height: 1;
}

.dc-form-wrap .gform_button:hover,
.dc-form-wrap .gform_button:focus-visible,
.dc-form-wrap .gform_wrapper.gravity-theme .gform_button:hover,
.dc-form-wrap .gform_wrapper.gravity-theme .gform_button:focus-visible {
  background: var(--dc-green-dark) !important;
  box-shadow: 0 10px 22px color-mix(in srgb, var(--dc-green-dark) 22%, transparent);
  transform: translateY(-1px);
}

.dc-form-wrap .gform_confirmation_message {
  border: 2px solid var(--dc-green);
  padding: 14px;
  background: var(--dc-white);
}

.dc-form-fallback {
  border: 2px solid var(--dc-green);
  background: var(--dc-white);
  padding: 16px;
}

body.dc-quote-modal-open {
  overflow: hidden;
}

.dc-quote-modal[hidden] {
  display: none;
}

.dc-quote-modal {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: grid;
  place-items: center;
  padding: 32px;
}

.dc-quote-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.56);
}

.dc-quote-modal__dialog {
  position: relative;
  z-index: 1;
  width: min(960px, calc(100vw - 64px));
  max-height: calc(100vh - 64px);
  overflow: auto;
  background: var(--dc-cream);
  border-radius: 25px;
  padding: 52px 28px 48px;
  box-shadow: 0 24px 70px rgba(0, 0, 0, 0.28);
}

.dc-quote-modal__dialog:focus {
  outline: none;
}

.dc-quote-modal__close {
  position: absolute;
  top: 30px;
  right: 28px;
  width: 38px;
  height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0;
  background: transparent;
  color: var(--dc-green);
  cursor: pointer;
  font-size: 30px;
}

.dc-quote-modal__close:hover,
.dc-quote-modal__close:focus-visible {
  color: var(--dc-green-dark);
}

.dc-quote-modal h2 {
  margin: 0 0 22px;
  color: var(--dc-green);
  font-family: var(--dc-font-head);
  font-size: 44px;
  font-weight: 400;
  line-height: 1;
}

.dc-quote-modal .gform_fields,
.dc-quote-modal .gform_wrapper.gravity-theme .gform_fields {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
  gap: 14px 16px !important;
}

.dc-quote-modal .gfield,
.dc-quote-modal .gform_wrapper.gravity-theme .gfield {
  margin: 0;
  grid-column: span 6 !important;
}

.dc-quote-modal .dc-quote-form-heading-field,
.dc-quote-modal .dc-quote-form-message-field {
  grid-column: 1 / -1 !important;
}

.dc-quote-modal .dc-quote-form-heading {
  margin: 4px 0 8px;
  color: var(--dc-green);
  font-family: var(--dc-font-body);
  font-size: 26px;
  font-weight: 400;
  line-height: 1.15;
}

.dc-quote-modal .gfield_label,
.dc-quote-modal .gform_wrapper.gravity-theme .gfield_label {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.dc-quote-modal input[type="text"],
.dc-quote-modal input[type="email"],
.dc-quote-modal input[type="tel"],
.dc-quote-modal textarea,
.dc-quote-modal .gform_wrapper.gravity-theme input[type="text"],
.dc-quote-modal .gform_wrapper.gravity-theme input[type="email"],
.dc-quote-modal .gform_wrapper.gravity-theme input[type="tel"],
.dc-quote-modal .gform_wrapper.gravity-theme textarea {
  width: 100%;
  min-height: 56px !important;
  border: 3px solid #000 !important;
  border-radius: 0 !important;
  background: var(--dc-white) !important;
  color: var(--dc-black) !important;
  font-family: var(--dc-font-body) !important;
  font-size: 22px !important;
  line-height: 1.2;
  padding: 12px 14px !important;
}

.dc-quote-modal textarea,
.dc-quote-modal .gform_wrapper.gravity-theme textarea {
  min-height: 184px !important;
  resize: vertical;
}

.dc-quote-modal .gform_footer,
.dc-quote-modal .gform_wrapper.gravity-theme .gform_footer {
  margin: 16px 0 0;
  padding: 0;
}

.dc-quote-modal .gform_button,
.dc-quote-modal .gform_wrapper.gravity-theme .gform_button {
  border: 0;
  border-radius: var(--dc-radius);
  background: var(--dc-green);
  color: var(--dc-cream);
  cursor: pointer;
  font-family: var(--dc-font-head);
  font-size: 26px;
  line-height: 1;
  min-height: 50px;
  padding: 8px 16px 6px;
  text-transform: lowercase;
}

.dc-quote-modal button.gform_button {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

.dc-quote-modal .gform_confirmation_message,
.dc-quote-modal .gform_wrapper.gravity-theme .gform_confirmation_message {
  border: 2px solid var(--dc-green);
  background: var(--dc-white);
  padding: 18px;
}

.dc-footer-copy {
  background: var(--dc-black);
  color: var(--dc-cream);
  padding-block: 5px;
  font-family: var(--dc-font-body);
  font-size: 16px;
}

.dc-footer-copy .dc-shell {
  display: flex;
  align-items: center;
  width: min(1668px, calc(100vw - 96px));
  min-height: 24px;
}

@media (max-width: 1100px) {
  :root {
    --dc-gutter: 22px;
    --dc-shell: min(900px, calc(100vw - (var(--dc-gutter) * 2)));
  }

  .dc-primary-nav .wp-block-navigation__container {
    gap: 10px;
  }

  .dc-primary-nav .wp-block-navigation-item__content {
    font-size: 14px;
  }
}

@media (max-width: 1180px) {
  .dc-services-intro,
  .dc-service-grid {
    width: var(--dc-shell);
  }

  .dc-service-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
  }
}

@media (max-width: 860px) {
  :root {
    --dc-gutter: 24px;
    --dc-shell: min(720px, calc(100vw - (var(--dc-gutter) * 2)));
  }

  body {
    font-size: 16px;
  }

  .dc-header-top .dc-shell {
    justify-content: flex-end;
  }

  .dc-phone-link {
    font-size: 20px;
  }

  .dc-header-main .dc-shell {
    justify-content: flex-end;
  }

  .dc-logo-link {
    top: -22px;
    width: 88px;
    height: 88px;
  }

  .dc-logo-link img {
    width: 88px;
    height: 88px;
  }

  .dc-hero {
    min-height: 620px;
    align-items: flex-end;
    padding-block: 110px 48px;
  }

  .dc-hero-card {
    padding: 24px;
    border-radius: 16px;
  }

  .dc-hero-card h1 {
    font-size: 34px;
  }

  .dc-hero-card p {
    font-size: 17px;
  }

  .dc-intro,
  .dc-built,
  .dc-services,
  .dc-faq {
    padding-block: 56px;
  }

  .dc-intro .wp-block-columns,
  .dc-built .wp-block-columns {
    gap: 28px;
  }

  .dc-circle-image {
    margin-inline: auto;
    max-width: 360px;
  }

  .dc-services h2 {
    font-size: 50px;
  }

  .dc-service-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    margin-top: 30px;
  }

  .dc-service-card__hover {
    font-size: 16px;
  }

  .dc-focus {
    min-height: 680px;
    align-items: flex-end;
    padding-block: 0;
  }

  .dc-focus .wp-block-cover__inner-container {
    width: var(--dc-shell);
    margin-inline: auto;
    padding-block: 60px;
  }

  .dc-focus-card {
    width: 100%;
    border-radius: 20px;
    padding: 28px;
  }

  .dc-service-intro,
  .dc-service-detail,
  .dc-service-final-cta,
  .dc-machine-help,
  .dc-machine-final-cta,
  .dc-vegetation-work,
  .dc-rural-fencing-fit,
  .dc-property-entry-work,
  .dc-rural-contracting-work {
    padding-block: 56px;
  }

  .dc-service-intro .wp-block-columns,
  .dc-service-detail .wp-block-columns,
  .dc-service-final-cta .wp-block-columns,
  .dc-machine-final-cta .wp-block-columns,
  .dc-rural-fencing-fit .wp-block-columns {
    gap: 28px;
  }

  .dc-service-intro-image,
  .dc-service-intro-image img {
    min-height: 360px;
  }

  .dc-service-cover {
    min-height: 640px;
    padding-block: 56px;
  }

  .dc-service-cover-card {
    padding: 28px;
  }

  .dc-service-copy h2,
  .dc-service-cover-card h2,
  .dc-service-final-cta h2,
  .dc-machine-help h2,
  .dc-machine-final-cta h2,
  .dc-vegetation-work h2,
  .dc-property-entry-work h2,
  .dc-rural-contracting-work h2 {
    font-size: 32px;
  }

  .dc-vegetation-work h2 {
    margin-bottom: 34px;
  }

  .dc-vegetation-card-grid {
    gap: 24px;
  }

  .dc-vegetation-card__body {
    min-height: 240px;
    padding: 18px;
  }

  .dc-vegetation-card p {
    font-size: 16px;
  }

  .dc-property-entry-card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
  }

  .dc-property-entry-card {
    min-height: 240px;
  }

  .dc-rural-contracting-card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
  }

  .dc-rural-contracting-card {
    min-height: 240px;
  }

  .dc-vegetation-cover .dc-service-cover-card {
    margin-left: var(--dc-gutter);
  }

  .dc-property-entrances-cover .dc-service-cover-card {
    margin-right: var(--dc-gutter);
  }

  .dc-rural-contracting-cover .dc-service-cover-card {
    margin-left: var(--dc-gutter);
  }

  .dc-property-entry-considerations .dc-property-entry-detail-image img {
    min-height: 380px;
  }

  .dc-rural-contracting-considerations .dc-rural-contracting-detail-image img {
    min-height: 380px;
  }

  .dc-rural-fencing-image-stack {
    gap: 24px;
  }

  .dc-rural-fencing-fit h2 {
    font-size: 32px;
  }

  .dc-machine-help-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
  }

  .dc-machine-help-card {
    min-height: 280px;
  }

  .dc-machine-final-cta p {
    font-size: 18px;
  }

  .dc-faq h2 {
    font-size: 36px;
  }

  .dc-faq summary {
    font-size: 19px;
    padding: 12px 14px;
  }

  .dc-faq details p {
    font-size: 17px;
    margin: 16px 0 22px;
  }

  .dc-quote-modal {
    padding: 22px;
  }

  .dc-quote-modal__dialog {
    width: calc(100vw - 44px);
    max-height: calc(100vh - 44px);
    padding: 48px 24px 34px;
  }

  .dc-quote-modal__close {
    top: 18px;
    right: 18px;
  }

  .dc-quote-modal h2 {
    font-size: 34px;
  }

  .dc-quote-modal .dc-quote-form-heading {
    font-size: 23px;
  }

  .dc-quote-modal input[type="text"],
  .dc-quote-modal input[type="email"],
  .dc-quote-modal input[type="tel"],
  .dc-quote-modal textarea,
  .dc-quote-modal .gform_wrapper.gravity-theme input[type="text"],
  .dc-quote-modal .gform_wrapper.gravity-theme input[type="email"],
  .dc-quote-modal .gform_wrapper.gravity-theme input[type="tel"],
  .dc-quote-modal .gform_wrapper.gravity-theme textarea {
    min-height: 50px !important;
    font-size: 18px !important;
  }

  .dc-footer-grid {
    grid-template-columns: 1fr;
    gap: 44px;
    width: var(--dc-shell);
  }

  .dc-footer-contact {
    padding-block: 54px;
  }

  .dc-footer h2 {
    font-size: 40px;
  }

  .dc-form-wrap {
    max-width: none;
  }

  .dc-form-wrap input[type="text"],
  .dc-form-wrap input[type="email"],
  .dc-form-wrap input[type="tel"],
  .dc-form-wrap textarea,
  .dc-form-wrap .gform_wrapper.gravity-theme input[type="text"],
  .dc-form-wrap .gform_wrapper.gravity-theme input[type="email"],
  .dc-form-wrap .gform_wrapper.gravity-theme input[type="tel"],
  .dc-form-wrap .gform_wrapper.gravity-theme textarea {
    border-width: 2px !important;
    min-height: 52px !important;
    font-size: 20px !important;
  }

  .dc-form-wrap textarea,
  .dc-form-wrap .gform_wrapper.gravity-theme textarea {
    min-height: 180px !important;
  }

  .dc-form-wrap .gform_button,
  .dc-form-wrap .gform_wrapper.gravity-theme .gform_button {
    min-height: 50px !important;
    font-size: 24px !important;
  }
}

@media (max-width: 560px) {
  :root {
    --dc-gutter: 22px;
    --dc-shell: min(420px, calc(100vw - (var(--dc-gutter) * 2)));
  }

  .dc-header-top .dc-socials {
    display: none;
  }

  .dc-header-top .dc-shell {
    min-height: 40px;
  }

  .dc-header-top .dc-phone-link {
    font-size: 21px;
  }

  .dc-hero {
    min-height: 560px;
    padding-block: 96px 38px;
  }

  .dc-hero-card {
    padding: 22px;
  }

  .dc-hero-card h1 {
    font-size: 30px;
  }

  .dc-hero-card p {
    font-size: 16px;
  }

  .dc-intro h2,
  .dc-built h2 {
    font-size: 30px;
  }

  .dc-services h2 {
    font-size: 42px;
  }

  .dc-services-intro p,
  .dc-intro p,
  .dc-built p,
  .dc-focus-card p,
  .dc-footer p,
  .dc-footer li {
    font-size: 16px;
  }

  .dc-service-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .dc-service-card {
    min-height: 214px;
  }

  .dc-service-card__title {
    font-size: 22px;
  }

  .dc-service-card__hover {
    font-size: 15.5px;
  }

  .dc-tall-image,
  .dc-tall-image img {
    min-height: 380px;
  }

  .dc-focus-card {
    padding: 24px 22px;
  }

  .dc-focus .wp-block-cover__inner-container {
    padding-block: 20px;
  }

  .dc-service-cover-card {
    padding: 24px 22px;
  }

  .dc-service-copy h2,
  .dc-service-cover-card h2,
  .dc-service-final-cta h2,
  .dc-machine-help h2,
  .dc-machine-final-cta h2,
  .dc-vegetation-work h2,
  .dc-rural-fencing-fit h2,
  .dc-property-entry-work h2,
  .dc-rural-contracting-work h2 {
    font-size: 30px;
  }

  .dc-machine-help h2,
  .dc-vegetation-work h2,
  .dc-property-entry-work h2,
  .dc-rural-contracting-work h2 {
    margin-bottom: 26px;
  }

  .dc-vegetation-card-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .dc-vegetation-card__body {
    min-height: auto;
    border-width: 2px;
  }

  .dc-property-entry-card-grid {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .dc-property-entry-card {
    min-height: auto;
    border-width: 2px;
  }

  .dc-property-entry-card h3 {
    font-size: 22px;
  }

  .dc-rural-contracting-card-grid {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .dc-rural-contracting-card {
    min-height: auto;
    border-width: 2px;
  }

  .dc-rural-contracting-card h3 {
    font-size: 22px;
  }

  .dc-vegetation-cover .dc-service-cover-card {
    width: var(--dc-shell);
    margin-inline: auto;
    border-radius: 18px;
  }

  .dc-property-entrances-cover .dc-service-cover-card {
    width: var(--dc-shell);
    margin-inline: auto;
    border-radius: 18px;
  }

  .dc-rural-contracting-cover .dc-service-cover-card {
    width: var(--dc-shell);
    margin-inline: auto;
    border-radius: 18px;
  }

  .dc-rural-fencing-cover .dc-service-cover-card {
    border-radius: 18px;
  }

  .dc-property-entry-circle {
    max-width: 320px;
  }

  .dc-property-entry-considerations .dc-property-entry-detail-image img {
    min-height: 320px;
  }

  .dc-rural-contracting-circle {
    max-width: 320px;
  }

  .dc-rural-contracting-considerations .dc-rural-contracting-detail-image img {
    min-height: 320px;
  }

  .dc-rural-fencing-circle {
    max-width: 320px;
  }

  .dc-machine-help-grid {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .dc-machine-help-card {
    min-height: auto;
  }

  .dc-machine-help-card__head {
    grid-template-columns: 48px minmax(0, 1fr);
    gap: 14px;
  }

  .dc-service-intro-image,
  .dc-service-intro-image img {
    min-height: 320px;
  }

  .dc-service-image-stack {
    gap: 14px;
  }

  .dc-focus-card h2,
  .dc-faq h2 {
    font-size: 32px;
  }

  .dc-faq summary {
    gap: 12px;
    font-size: 17px;
  }

  .dc-quote-modal {
    padding: 14px;
  }

  .dc-quote-modal__dialog {
    width: calc(100vw - 28px);
    max-height: calc(100vh - 28px);
    border-radius: 18px;
    padding: 46px 18px 26px;
  }

  .dc-quote-modal h2 {
    font-size: 30px;
    margin-bottom: 18px;
  }

  .dc-quote-modal .gform_fields,
  .dc-quote-modal .gform_wrapper.gravity-theme .gform_fields {
    gap: 12px !important;
  }

  .dc-quote-modal .gfield,
  .dc-quote-modal .gform_wrapper.gravity-theme .gfield {
    grid-column: 1 / -1 !important;
  }

  .dc-quote-modal .dc-quote-form-heading {
    font-size: 21px;
  }

  .dc-quote-modal input[type="text"],
  .dc-quote-modal input[type="email"],
  .dc-quote-modal input[type="tel"],
  .dc-quote-modal textarea,
  .dc-quote-modal .gform_wrapper.gravity-theme input[type="text"],
  .dc-quote-modal .gform_wrapper.gravity-theme input[type="email"],
  .dc-quote-modal .gform_wrapper.gravity-theme input[type="tel"],
  .dc-quote-modal .gform_wrapper.gravity-theme textarea {
    border-width: 2px;
    font-size: 17px !important;
  }

  .dc-quote-modal textarea,
  .dc-quote-modal .gform_wrapper.gravity-theme textarea {
    min-height: 150px !important;
  }

  .dc-quote-modal .gform_button,
  .dc-quote-modal .gform_wrapper.gravity-theme .gform_button {
    font-size: 22px;
    min-height: 46px;
  }

  .dc-footer-contact {
    padding-block: 44px;
  }

  .dc-footer .dc-detail-row {
    align-items: flex-start;
  }

  .dc-footer h2 {
    font-size: 30px;
  }

  .dc-footer .dc-phone-link,
  .dc-footer .dc-detail-link,
  .dc-footer .dc-detail-row {
    font-size: 18px;
  }

  .dc-footer .dc-social-link {
    width: 30px;
    height: 30px;
    font-size: 30px;
  }

  .dc-service-areas {
    margin-top: 28px;
  }

  .dc-form-wrap .gform_fields,
  .dc-form-wrap .gform_wrapper.gravity-theme .gform_fields {
    gap: 12px !important;
  }

  .dc-form-wrap input[type="text"],
  .dc-form-wrap input[type="email"],
  .dc-form-wrap input[type="tel"],
  .dc-form-wrap textarea,
  .dc-form-wrap .gform_wrapper.gravity-theme input[type="text"],
  .dc-form-wrap .gform_wrapper.gravity-theme input[type="email"],
  .dc-form-wrap .gform_wrapper.gravity-theme input[type="tel"],
  .dc-form-wrap .gform_wrapper.gravity-theme textarea {
    min-height: 46px !important;
    padding: 8px 10px !important;
    font-size: 17px !important;
  }

  .dc-form-wrap textarea,
  .dc-form-wrap .gform_wrapper.gravity-theme textarea {
    min-height: 170px !important;
  }

  .dc-form-wrap .gform_button,
  .dc-form-wrap .gform_wrapper.gravity-theme .gform_button {
    min-height: 46px !important;
    border-radius: 10px !important;
    font-size: 24px !important;
  }

  .dc-footer-copy {
    font-size: 13px;
  }
}

/* ------------------------------------------------------------------
   404 page
   ------------------------------------------------------------------ */
.dc-not-found__inner {
  width: min(760px, calc(100vw - (var(--dc-gutter) * 2)));
  margin-inline: auto;
}

.dc-not-found__code {
  margin: 0;
  color: var(--dc-yellow);
  font-family: var(--dc-font-head);
  font-size: clamp(72px, 14vw, 140px);
  line-height: 1;
}

.dc-not-found h1 {
  margin: 8px 0 16px;
  color: var(--dc-green);
  font-family: var(--dc-font-head);
  font-size: clamp(32px, 5vw, 48px);
  font-weight: 400;
  line-height: 1.1;
}

.dc-not-found__actions {
  margin-block: 24px;
}

.dc-not-found__search {
  margin-bottom: 40px;
}

.dc-not-found__search .wp-block-search__label {
  font-weight: 600;
}

.dc-not-found__search .wp-block-search__input {
  min-height: 50px;
  border: 2px solid var(--dc-black);
  border-radius: 0;
  font-size: 17px;
  padding: 10px 12px;
}

.dc-not-found__search .wp-block-search__button {
  align-self: center;
  height: auto;
  min-height: 50px;
  line-height: 1;
  padding: 8px 16px 10px;
  margin-left: 8px;
  border: 0;
  border-radius: 12px;
  background: var(--dc-green);
  color: var(--dc-cream);
  font-family: var(--dc-font-head);
  font-size: 22px;
  text-transform: lowercase;
}

.dc-not-found__subhead {
  margin-bottom: 12px;
  color: var(--dc-green);
  font-family: var(--dc-font-head);
  font-size: 28px;
  font-weight: 400;
}

.dc-not-found__links {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 6px 24px;
  padding: 0;
  list-style: none;
}

.dc-not-found__links a {
  display: inline-flex;
  min-height: 40px;
  align-items: center;
  color: var(--dc-black);
  font-weight: 600;
}

.dc-not-found__links a:hover,
.dc-not-found__links a:focus-visible {
  color: var(--dc-green);
}

/* ------------------------------------------------------------------
   Floating mobile contact bar (dc_render_mobile_cta_bar)
   Phones and tablets only. It replaces the green top strip there, so
   the sticky header is one row and the phone sits under the thumb.
   ------------------------------------------------------------------ */
.dc-mobile-cta {
  display: none;
}

@media (max-width: 860px) {
  body {
    padding-bottom: calc(56px + env(safe-area-inset-bottom));
  }

  .dc-header-top {
    display: none;
  }

  .dc-logo-link {
    top: 4px;
    width: 72px;
    height: 72px;
  }

  .dc-logo-link img {
    width: 72px;
    height: 72px;
  }

  .dc-header-main,
  .dc-header-main .dc-shell {
    min-height: 64px;
  }

  .dc-mobile-cta {
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 90;
    display: grid;
    grid-template-columns: 1fr 1fr;
    padding-bottom: env(safe-area-inset-bottom);
    background: var(--dc-green);
    box-shadow: 0 -6px 18px rgba(0, 0, 0, 0.14);
  }

  .dc-mobile-cta__phone,
  .dc-mobile-cta__quote {
    display: inline-flex;
    min-height: 56px;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin: 0;
    border: 0;
    border-radius: 0;
    text-decoration: none;
    cursor: pointer;
  }

  .dc-mobile-cta__phone {
    background: var(--dc-cream);
    color: var(--dc-black);
    font-family: var(--dc-font-alt);
    font-size: 17px;
    font-weight: 700;
  }

  .dc-mobile-cta__phone .dc-icon {
    color: var(--dc-green);
  }

  .dc-mobile-cta__quote {
    background: var(--dc-green);
    color: var(--dc-cream);
    font-family: var(--dc-font-head);
    font-size: 21px;
    text-transform: lowercase;
  }

  .dc-mobile-cta__quote .dc-icon {
    color: var(--dc-yellow);
  }

  .dc-mobile-cta__phone:focus-visible,
  .dc-mobile-cta__quote:focus-visible {
    outline: 3px solid var(--dc-yellow);
    outline-offset: -3px;
  }

  /* Out of the way while the quote form or the menu overlay is open. */
  body.dc-quote-modal-open .dc-mobile-cta,
  html.has-modal-open .dc-mobile-cta {
    display: none;
  }
}

/* ------------------------------------------------------------------
   Gravity Forms 3 (Orbital) polish: footer contact form + quote modal.
   Field size/border rules live with each form above; these add the
   states GF 3 left on its defaults (focus, error, summary, placeholder).
   ------------------------------------------------------------------ */
:is(.dc-form-wrap, .dc-quote-modal) .gform_wrapper {
  --gf-color-danger: #b42318;
  --gf-ctrl-label-color-req: #b42318;
}

:is(.dc-form-wrap, .dc-quote-modal) .gform_wrapper :is(input[type="text"], input[type="email"], input[type="tel"], textarea)::placeholder {
  color: var(--dc-muted);
  opacity: 1;
}

:is(.dc-form-wrap, .dc-quote-modal) .gform_wrapper :is(input[type="text"], input[type="email"], input[type="tel"], textarea):focus {
  border-color: var(--dc-green) !important;
  outline: 3px solid color-mix(in srgb, var(--dc-green) 28%, transparent);
  outline-offset: 0;
  box-shadow: none !important;
}

:is(.dc-form-wrap, .dc-quote-modal) .gform_wrapper .gfield_error :is(input, textarea) {
  border-color: #b42318 !important;
}

:is(.dc-form-wrap, .dc-quote-modal) .gform_wrapper .gfield_validation_message {
  margin-top: 6px;
  padding: 0;
  border: 0;
  background: none;
  color: #b42318;
  font-family: var(--dc-font-body);
  font-size: 15px;
  font-weight: 600;
}

:is(.dc-form-wrap, .dc-quote-modal) .gform_wrapper .gform_validation_errors {
  margin-bottom: 18px;
  padding: 12px 14px;
  border: 0;
  border-left: 4px solid #b42318;
  border-radius: 0;
  background: var(--dc-white);
  box-shadow: none;
}

:is(.dc-form-wrap, .dc-quote-modal) .gform_wrapper .gform_validation_errors .gform_submission_error {
  color: #b42318;
  font-family: var(--dc-font-body);
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
}

:is(.dc-form-wrap, .dc-quote-modal) .gform_wrapper .gform_ajax_spinner,
:is(.dc-form-wrap, .dc-quote-modal) .gform_wrapper .gform-loader {
  margin-left: 12px;
}

/* The footer copyright line is a flex row; keep the space before the link. */
.dc-footer-copy p.dc-shell {
  display: block;
}

/* Inline footer/contact links: bigger tap area without moving the layout. */
.dc-detail-row a,
.dc-footer-copy a,
.dc-main p a[href^="tel:"] {
  padding-block: 11px;
  margin-block: -11px;
}

/* Compact card buttons still need a full-size tap target on touch screens. */
@media (max-width: 860px) {
  .dc-machine-help-card .dc-button {
    min-height: 44px;
  }
}

/* Respect reduced-motion: keep state changes, drop the movement. */
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    transition-property: opacity, background-color, border-color, color, box-shadow, visibility !important;
  }
}
