/* Header — scaled down for better visual hierarchy */
.navbar .navbar-brand img {
    max-height: 95px;
}

.dgty-logo {
    width: 228px;
    height: 95px!important;
}

.navbar-nav .nav-link {
    font-size: 0.8rem;
}

.btn-nav {
    margin-left: 32px!important;
    font-size: 0.8rem;
}

/* Brand button colours — green default, dark grey hover
   Selectors include .bg-light to override the .bg-light a { color: #0e0e0e }
   rule in style.css which otherwise turns button text dark. */
.btn-primary,
.btn-info,
.bg-light .btn-primary,
.bg-light .btn-info {
    color: #fff;
    background-color: #148051;
    border-color: #148051;
}

.btn-primary:hover,
.btn-primary:focus,
.btn-info:hover,
.btn-info:focus,
.bg-light .btn-primary:hover,
.bg-light .btn-primary:focus,
.bg-light .btn-info:hover,
.bg-light .btn-info:focus {
    color: #fff;
    background-color: #454545;
    border-color: #454545;
}

/* Search form — brand-consistent focus and hover states */
.search-form .form-control:focus {
    border-color: #148051;
    box-shadow: 0 0 0 0.25rem rgba(20, 128, 81, 0.25);
}

.search-form .btn-dark:hover,
.search-form .btn-dark:focus {
    background-color: #148051;
    border-color: #148051;
}

/* Footer — scaled down to match header */
footer {
    font-size: 0.875rem;
}

footer .h6 {
    font-size: 0.9rem;
}

/* Hero section — CSS Grid layout with layered background */
.hero {
    position: relative;
    overflow: hidden;
    color: #fff;
    background-image: url(../img/grunge.png);
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
    box-shadow: inset 0 0 30px 0 rgba(0, 0, 0, 0.95);
}

.hero-container {
    max-width: 2000px;
    position: relative;
    z-index: 1;
}

/* Gradient overlay for text contrast — full width */
.hero::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to right,
        rgba(0, 0, 0, 0) 0%,
        rgba(0, 0, 0, 0.3) 25%,
        rgba(0, 0, 0, 0.6) 45%,
        rgba(0, 0, 0, 0.75) 100%
    );
    pointer-events: none;
}

.hero-grid {
    display: grid;
    grid-template-columns: 1fr 2fr;
    min-height: clamp(280px, 30vw, 560px);
    position: relative;
    z-index: 1;
}

/* Left column — Rob's cutout, anchored to the bottom for poster effect */
.hero-photo {
    position: relative;
    overflow: hidden;
}

/* Desktop cutout — anchored to bottom, never taller than the hero */
.hero-photo-cutout {
    position: absolute;
    bottom: 0;
    left: 0;
    width: auto;
    max-height: 92%;
    display: block;
}

/* Mobile photo — hidden on desktop */
.hero-photo-mobile {
    display: none;
}

/* Right column — text content, vertically centered */
.hero-content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 3.5rem 10rem 3.5rem 2.5rem;
    gap: 1.25rem;
}

.hero-heading {
    font-size: 2.25rem;
    font-weight: 700;
    line-height: 1.2;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.6);
    margin: 0;
}

.hero-description {
    font-size: 1.1rem;
    line-height: 1.6;
    color: rgba(255, 255, 255, 0.85);
    text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.5);
    margin: 0;
}

.hero-cta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    padding-top: 0.5rem;
}

/* Entrance animations */
@keyframes heroFadeUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.hero-heading {
    animation: heroFadeUp 0.6s ease-out both;
}

.hero-description {
    animation: heroFadeUp 0.6s ease-out 0.15s both;
}

.hero-cta {
    animation: heroFadeUp 0.6s ease-out 0.3s both;
}

  .dgty-icon {
      margin-bottom: 15px;
      width: 100px;
  }

/* Section headings — lighter weight so they don't compete with the hero */
.dgty-section-heading {
    font-family: "Fira Sans", sans-serif;
    font-size: 1.5rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    opacity: 0.85;
    padding-bottom: 1.25rem;
}

.dgty-section-heading::after {
    content: "";
    display: block;
    width: 15%;
    height: 4px;
    background-color: #f2f1f1;
    margin: 1rem auto 0;
}

/* Services/icon blocks */
.dgty-services {
    padding: 2rem 0 2rem;
}

/* Muted text on dark backgrounds — WCAG AA compliant */
.text-muted-darkbg {
    color: #828282 !important;
}

/* Category labels on cards */
.dgty-category-label {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #6e6e6e;
    margin-bottom: 0.5rem;
}

.dgty-category-icon {
    font-size: 1rem;
}

/* Card heading — matches section heading style */
.dgty-card-heading {
    font-size: 24px;
    font-weight: 600;
    letter-spacing: 0.02em;
    line-height: 1.4;
    opacity: 0.85;
    background-image: linear-gradient(to bottom, #262626 0, #262626 100%);
    background-position: 0 110%;
    background-repeat: no-repeat;
    background-size: 100% 0;
    padding: 2px 1px 0 0;
    display: inline;
    transition: background-size 0.2s ease;
}

a:hover .dgty-card-heading,
a:focus .dgty-card-heading {
    background-size: 100% 90%;
    color: #fff;
}

/* Icon block heading — lighter weight, ready for brand colour */
.dgty-icon-heading {
    font-weight: 400;
    display: block;
    background-image: none;
}

/* Wide button */
.dgty-btn-wide {
    min-width: 600px;
}

@media (max-width: 768px) {
    .dgty-btn-wide {
        min-width: 0;
        width: auto;
        display: block;
        margin-left: 1rem;
        margin-right: 1rem;
    }
}

/* Placeholder pattern SVGs — block display removes inline baseline gap */
.img-overlay svg {
    display: block;
    width: 100%;
    height: auto;
}

/* Articles section */
.dgty-articles {
    padding-top: 0;
    padding-bottom: 0;
}


    .wp-block-audio {
        margin-top: 0rem!important;
    }

  .content figure {
    margin-top: 1.5rem;
  }

  .content img,
  .entry-content img {
    max-width: 100%;
    width: auto;
    height: auto !important;
  }

.wp-block-heading {
    margin-top: 1.5em;
}

.entry-content li:not(:last-child),
.content li:not(:last-child) {
    margin-bottom: 0.35em;
}

  figcaption {
    font-size: .875em;
    color: #595959;
    padding: .5rem!important;
    text-align: center!important;
    margin-top: 0.5rem;
    margin-bottom: 0;
  }

  figure.wp-block-image {
    padding: 0;
    margin: 1.5rem auto 0;
  }

.wp-block-button__link {
    transition-duration: 0.4s;
    text-transform: uppercase;
    margin-bottom: 1rem;
}

.wp-block-button__link:hover, .wp-block-button__link:focus {
    background-color: #262626!important;
}

.is-type-video .wp-block-embed__wrapper {
	display: block;
	position: relative;
	width: 100%;
	height: 0;
	padding-bottom: 56.25%; /* 16:9 ratio */
	margin-top: 1.5rem;
}

.is-type-video .wp-block-embed__wrapper iframe,
.is-type-video .wp-block-embed__wrapper object,
.is-type-video .wp-block-embed__wrapper embed {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	max-width: 100%;
	height: 100%;
}

.wp-block-file a  {
    text-decoration: underline;
}

.wp-block-file a:hover, .wp-block-file a:focus {
    text-decoration: none;
}

.wp-block-file__button {
    color: #fff!important;
    text-decoration: none!important;
    background: #0e0e0e!important;
}

.wp-block-aab-accordion-block {
    margin-top: 2rem;
    margin-bottom: 2rem;
    border: 1px solid #e7e9eb!important;
    border-radius: 0px!important;
}


  @media only screen and (max-width: 600px) {
    .dgty-logo {
        width: 160px;
        height: 67px!important;
    }

    .navbar .navbar-brand img {
        max-height: 67px;
    }

    .btn-nav {
        margin-left: 0!important;
        display: block;
        width: 100%;
        margin-top: 16px;
        margin-bottom: 8px;
    }

      .sdm_download_title {
          margin-top: 16px;
          line-height: 1.8rem!important;
      } 
    

  }

.wp-block-button__link {
    margin-top: 16px;
    margin-bottom: 32px;
}

.wp-block-button__link:hover, .wp-block-button__link:focus {
    color: #fff;
}

/* Tablets and smaller desktops */
@media (max-width: 1200px) {
    .navbar .navbar-brand img {
        max-height: 70px;
    }

    .dgty-logo {
        width: 168px;
        height: 70px!important;
    }


    .hero-grid {
        grid-template-columns: 1fr 2fr;
    }

    .hero-content {
        padding: 2.5rem 3rem 2.5rem 2rem;
    }

    .hero-heading {
        font-size: 1.9rem;
    }

    .hero-description {
        font-size: 1rem;
    }

    .dgty-project-h2 {
        margin-top: 32px!important;
    }
}

/* Small tablets */
@media (max-width: 992px) {
    .hero-content {
        padding: 2rem 2rem 2rem 1.5rem;
    }

    .hero-heading {
        font-size: 1.6rem;
    }

    .hero-description {
        font-size: 0.9rem;
    }
}

/* Mobile — single column stack */
@media (max-width: 768px) {
    .hero {
        background-image: none;
        background-color: #1a1a1a;
    }

    .hero::after {
        display: none;
    }

    .hero-grid {
        grid-template-columns: 1fr;
        min-height: auto;
    }

    .hero-photo-cutout {
        display: none;
    }

    .hero-photo-mobile {
        display: block;
        width: 100%;
        height: auto;
        object-fit: cover;
        position: static;
    }

    .hero-content {
        padding: 1.5rem 1.5rem 2rem;
    }

    .hero-heading {
        font-size: 1.75rem;
        text-shadow: none;
    }

    .hero-description {
        font-size: 1rem;
        text-shadow: none;
    }

    .hero-cta {
        flex-direction: column;
    }

    .hero-cta .btn {
        width: 100%;
        text-align: center;
    }

}

/* Collapsed navbar — tablets and mobile */
@media (max-width: 991.98px) {
    .navbar-nav .nav-link {
        font-size: 1rem;
    }

    .navbar .btn,
    .btn-nav {
        font-size: 1rem;
    }

    .navbar .btn {
        clear: both;
        display: block;
        width: 100%;
        margin-top: 16px;
        margin-left: 0!important;
    }
}

/* Pagination
   ========================================================================== */

.pagination .page-link {
    color: #262626;
    background-color: #fff;
    border: 1px solid #a6a6a6;
    border-radius: 0;
}

.pagination .page-link:hover {
    color: #fff;
    background-color: #148051;
    border-color: #148051;
}

.pagination .page-link:focus {
    color: #fff;
    background-color: #148051;
    border-color: #148051;
    box-shadow: 0 0 0 0.25rem rgba(20, 128, 81, 0.25);
}

.pagination .page-item.active .page-link {
    color: #fff;
    background-color: #0e0e0e;
    border-color: #0e0e0e;
}

.pagination .page-item.disabled .page-link {
    color: #595959;
    pointer-events: none;
    background-color: #fff;
    border-color: #a6a6a6;
}

/* Accent background colours — used for CTA bars and coloured sections */
.dgty-cta--green  { background-color: #148051; }
.dgty-cta--blue   { background-color: #007EA8; }
.dgty-cta--teal   { background-color: #25818D; }
.dgty-cta--red    { background-color: #cf3721; }
.dgty-cta--purple { background-color: #8b5399; }

/* CTA buttons — dark grey hover to match site-wide pattern */
.dgty-cta .btn-light:hover,
.dgty-cta .btn-light:focus {
    color: #fff;
    background-color: #454545;
    border-color: #454545;
}