/* DreamCode Hoàng Hùng Projects - frontend */
.dc-hhp-listing,
.dc-hhp-hero,
.dc-hhp-anchor-nav,
.dc-hhp-overview,
.dc-hhp-gallery,
.dc-hhp-location,
.dc-hhp-docs,
.dc-hhp-related,
.dc-hhp-featured,
.dc-hhp-distribution,
.dc-hhp-listing *,
.dc-hhp-hero *,
.dc-hhp-anchor-nav *,
.dc-hhp-overview *,
.dc-hhp-gallery *,
.dc-hhp-location *,
.dc-hhp-docs *,
.dc-hhp-related *,
.dc-hhp-featured *,
.dc-hhp-distribution * {
    box-sizing: border-box;
}

.dc-hhp-editor-notice,
.dc-hhp-empty {
    width: min(100% - 28px, 1180px);
    margin: 18px auto;
    padding: 14px 16px;
    border: 1px dashed #b8c0cc;
    background: #f7f9fb;
    color: #445;
}

/* Shared motion: start state exists from first paint; animation has CSS failsafe. */
.dc-hhp-motion--pending [data-dc-hhp-motion-item] {
    opacity: 0;
    transform: translate3d(0, var(--dc-hhp-distance, 22px), 0);
    transition-property: opacity, transform;
    transition-duration: var(--dc-hhp-duration, 650ms);
    transition-timing-function: cubic-bezier(.2,.72,.2,1);
    transition-delay: calc(var(--dc-hhp-delay, 40ms) + var(--dc-hhp-item-index, 0) * var(--dc-hhp-stagger, 80ms));
    will-change: opacity, transform;
    animation: dc-hhp-reveal-failsafe 0s 2.8s forwards;
}
.dc-hhp-motion--fade-left.dc-hhp-motion--pending [data-dc-hhp-motion-item] { transform: translate3d(var(--dc-hhp-distance, 22px),0,0); }
.dc-hhp-motion--fade-right.dc-hhp-motion--pending [data-dc-hhp-motion-item] { transform: translate3d(calc(var(--dc-hhp-distance, 22px) * -1),0,0); }
.dc-hhp-motion--fade.dc-hhp-motion--pending [data-dc-hhp-motion-item] { transform: none; }
.dc-hhp-motion--soft-zoom.dc-hhp-motion--pending [data-dc-hhp-motion-item] { transform: scale(.975); }
.dc-hhp-motion.is-visible [data-dc-hhp-motion-item],
.dc-hhp-motion:not(.dc-hhp-motion--pending) [data-dc-hhp-motion-item] {
    opacity: 1;
    transform: none;
    animation: none;
    will-change: auto;
}
@keyframes dc-hhp-reveal-failsafe { to { opacity: 1; transform: none; } }

/* Shared buttons. Extra specificity protects against Elementor Kit button states. */
.elementor .dc-hhp-overview a.dc-hhp-button,
.elementor .dc-hhp-project-card a.dc-hhp-project-card__button,
.elementor .dc-hhp-location a.dc-hhp-location__button,
.dc-hhp-overview a.dc-hhp-button,
.dc-hhp-project-card a.dc-hhp-project-card__button,
.dc-hhp-location a.dc-hhp-location__button {
    appearance: none;
    -webkit-appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 12px 30px;
    border: 0;
    border-radius: 0;
    background: #201a7a;
    color: #fff;
    text-decoration: none;
    text-align: center;
    line-height: 1.2;
    cursor: pointer;
    transition: background-color .22s ease, color .22s ease, border-color .22s ease, box-shadow .22s ease, transform .22s ease;
}
.elementor .dc-hhp-overview a.dc-hhp-button:hover,
.elementor .dc-hhp-overview a.dc-hhp-button:focus,
.elementor .dc-hhp-overview a.dc-hhp-button:focus-visible,
.elementor .dc-hhp-overview a.dc-hhp-button:active,
.elementor .dc-hhp-project-card a.dc-hhp-project-card__button:hover,
.elementor .dc-hhp-project-card a.dc-hhp-project-card__button:focus,
.elementor .dc-hhp-project-card a.dc-hhp-project-card__button:focus-visible,
.elementor .dc-hhp-project-card a.dc-hhp-project-card__button:active,
.elementor .dc-hhp-location a.dc-hhp-location__button:hover,
.elementor .dc-hhp-location a.dc-hhp-location__button:focus,
.elementor .dc-hhp-location a.dc-hhp-location__button:focus-visible,
.elementor .dc-hhp-location a.dc-hhp-location__button:active,
.dc-hhp-overview a.dc-hhp-button:hover,
.dc-hhp-project-card a.dc-hhp-project-card__button:hover,
.dc-hhp-location a.dc-hhp-location__button:hover {
    background: #e00000;
    color: #fff;
    text-decoration: none;
}
.dc-hhp-button:focus-visible,
.dc-hhp-project-card__button:focus-visible,
.dc-hhp-location__button:focus-visible,
.dc-hhp-anchor-nav__cta:focus-visible,
.dc-hhp-gallery__arrow:focus-visible,
.dc-hhp-gallery__thumb:focus-visible,
.dc-hhp-docs__download:focus-visible,
.dc-hhp-related-card__button:focus-visible,
.dc-hhp-featured__all:focus-visible,
.dc-hhp-featured-card__link:focus-visible,
.dc-hhp-distribution__all:focus-visible,
.dc-hhp-distribution-card__link:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 3px;
}

/* Listing */
.dc-hhp-listing { width: 100%; background: #f4f7fb; }
.dc-hhp-listing__inner { width: 100%; margin-inline: auto; min-width: 0; }
.dc-hhp-listing__heading { min-width:0; margin:0 0 16px; }
.dc-hhp-listing__eyebrow {
    display:flex;
    align-items:center;
    gap:10px;
    margin:0 0 10px;
    color:#e00000;
    font-size:18px;
    line-height:1.3;
    font-weight:500;
    text-transform:uppercase;
}
.dc-hhp-listing__eyebrow::before {
    content:"";
    flex:0 0 auto;
    width:28px;
    height:1px;
    background:#e00000;
}
.dc-hhp-listing__title {
    margin:0;
    color:#171774;
    font-family:"Arial Narrow",Arial,sans-serif;
    font-size:clamp(32px,3vw,48px);
    line-height:1.05;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:-.02em;
    overflow-wrap:anywhere;
}
.dc-hhp-listing__toolbar {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px 28px;
    min-width:0;
    margin:0 0 20px;
}
.dc-hhp-listing__filter-rail {
    flex:1 1 auto;
    min-width:0;
    overflow-x:auto;
    overflow-y:hidden;
    overscroll-behavior-inline:contain;
    scrollbar-width:thin;
}
.dc-hhp-listing__filters {
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:10px;
    min-width:0;
}
.dc-hhp-listing__filter-link {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:44px;
    padding:10px 24px;
    border:1px solid #171774;
    background:#fff;
    color:#171774;
    font-size:13px;
    line-height:1.2;
    font-weight:500;
    text-align:center;
    text-decoration:none;
    white-space:nowrap;
    transition:background-color .2s ease,color .2s ease,border-color .2s ease;
}
.dc-hhp-listing__filter-link.is-active,
.dc-hhp-listing__filter-link:hover,
.dc-hhp-listing__filter-link:focus-visible {
    background:#201a7a;
    border-color:#201a7a;
    color:#fff;
    text-decoration:none;
}
.dc-hhp-listing__filter-link:focus-visible { outline:2px solid currentColor; outline-offset:2px; }
.dc-hhp-listing__search {
    flex:0 0 auto;
    display:grid;
    grid-template-columns:minmax(0,1fr) 44px;
    width:305px;
    max-width:100%;
    min-width:0;
    margin:0;
}
.elementor .dc-hhp-listing input.dc-hhp-listing__search-input,
.dc-hhp-listing input.dc-hhp-listing__search-input {
    display:block;
    width:100%;
    max-width:100%;
    min-width:0;
    height:44px;
    min-height:44px;
    margin:0;
    padding:8px 14px;
    border:1px solid #aeb8c9;
    border-right:0;
    border-radius:0;
    background:#fff;
    color:#171774;
    font:inherit;
    font-size:14px;
    line-height:1.3;
    box-shadow:none;
    outline:none;
}
.elementor .dc-hhp-listing input.dc-hhp-listing__search-input:focus,
.dc-hhp-listing input.dc-hhp-listing__search-input:focus {
    border-color:#201a7a;
    box-shadow:inset 0 0 0 1px #201a7a;
}
.elementor .dc-hhp-listing button.dc-hhp-listing__search-button,
.elementor .dc-hhp-listing button.dc-hhp-listing__search-button:hover,
.elementor .dc-hhp-listing button.dc-hhp-listing__search-button:focus,
.elementor .dc-hhp-listing button.dc-hhp-listing__search-button:focus-visible,
.elementor .dc-hhp-listing button.dc-hhp-listing__search-button:active,
.dc-hhp-listing button.dc-hhp-listing__search-button,
.dc-hhp-listing button.dc-hhp-listing__search-button:hover,
.dc-hhp-listing button.dc-hhp-listing__search-button:focus,
.dc-hhp-listing button.dc-hhp-listing__search-button:focus-visible,
.dc-hhp-listing button.dc-hhp-listing__search-button:active {
    appearance:none;
    -webkit-appearance:none;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:44px;
    height:44px;
    min-width:44px;
    min-height:44px;
    margin:0;
    padding:0;
    border:0;
    border-radius:0;
    background:#201a7a;
    color:#fff;
    box-shadow:none;
    cursor:pointer;
}
.dc-hhp-listing__search-button svg,
.dc-hhp-listing__search-button i,
.dc-hhp-listing__search-button span {
    display:block;
    width:1em;
    height:1em;
    max-width:1em;
    max-height:1em;
    color:currentColor;
    fill:currentColor;
    font-size:17px;
    line-height:1;
}
.dc-hhp-listing__search-button:focus-visible { outline:2px solid currentColor; outline-offset:2px; }
.dc-hhp-listing__grid { display: grid; grid-template-columns: minmax(0,1fr); gap: 28px; }
.dc-hhp-project-card {
    display: flex;
    width: 100%;
    min-width: 0;
    min-height: 425px;
    overflow: hidden;
    background: #fff;
}
.dc-hhp-project-card__media {
    position: relative;
    flex: 0 1 50%;
    min-width: 0;
    overflow: hidden;
    background: #e8edf3;
}
.dc-hhp-project-card__image,
.elementor .dc-hhp-project-card img.dc-hhp-project-card__image {
    display: block;
    width: 100%;
    max-width: 100%;
    height: 100%;
    min-height: 100%;
    object-fit: cover;
    transition: transform .55s cubic-bezier(.2,.72,.2,1);
}
.dc-hhp-project-card:hover .dc-hhp-project-card__image { transform: scale(1.025); }
.dc-hhp-project-card__placeholder { position: absolute; inset: 0; display:block; background: linear-gradient(135deg,#edf1f6,#dfe6ee); }
.dc-hhp-project-card__content {
    flex: 1 1 50%;
    min-width: 0;
    padding: 56px 40px 50px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.dc-hhp-project-card__type { color:#e00000; font-size:16px; line-height:1.35; font-weight:600; overflow-wrap:anywhere; }
.dc-hhp-project-card__type > span { font-size:.68em; vertical-align:.08em; }
.dc-hhp-project-card__title {
    margin: 25px 0 0;
    color:#171774;
    font-family:"Arial Narrow", Arial, sans-serif;
    font-size:clamp(30px,2.4vw,48px);
    line-height:1.08;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:-.02em;
    overflow-wrap:anywhere;
}
/* Project title typography belongs to the heading control.
 * Force the linked title to inherit it so Elementor Kit/global link typography
 * cannot replace a custom Elementor font selected for this widget. */
.elementor .dc-hhp-listing .dc-hhp-project-card__title > a,
.dc-hhp-listing .dc-hhp-project-card__title > a {
    color:inherit;
    font-family:inherit;
    font-size:inherit;
    font-style:inherit;
    font-weight:inherit;
    line-height:inherit;
    letter-spacing:inherit;
    text-transform:inherit;
    text-decoration:none;
}
.dc-hhp-project-card__meta {
    display:flex;
    flex-wrap:wrap;
    gap:4px 9px;
    margin-top:14px;
    color:#e00000;
    font-size:16px;
    line-height:1.55;
    overflow-wrap:anywhere;
}
.dc-hhp-project-card__meta-sep { color:currentColor; opacity:.8; }
.dc-hhp-project-card__excerpt { margin-top:12px; color:#626262; font-size:16px; line-height:1.75; overflow-wrap:anywhere; }
.dc-hhp-project-card__actions { margin-top:18px; }
.dc-hhp-project-card__button { min-width:185px; }
.dc-hhp-pagination { margin-top:30px; }
.dc-hhp-pagination .page-numbers { list-style:none; display:flex; flex-wrap:wrap; gap:8px; margin:0; padding:0; }
.dc-hhp-pagination a,
.dc-hhp-pagination span { display:inline-flex; align-items:center; justify-content:center; min-width:44px; min-height:44px; padding:8px 12px; border:1px solid #d4d9e0; background:#fff; color:#171774; text-decoration:none; }
.dc-hhp-pagination .current { background:#171774; color:#fff; border-color:#171774; }

.dc-hhp-listing__toolbar,
.dc-hhp-listing__grid,
.dc-hhp-listing .dc-hhp-empty,
.dc-hhp-listing .dc-hhp-pagination { transition:opacity .18s ease; }
.dc-hhp-listing.is-loading .dc-hhp-listing__toolbar,
.dc-hhp-listing.is-loading .dc-hhp-listing__grid,
.dc-hhp-listing.is-loading .dc-hhp-empty,
.dc-hhp-listing.is-loading .dc-hhp-pagination { opacity:.55; pointer-events:none; }

/* Hero */
.dc-hhp-hero { position:relative; width:100%; overflow:hidden; background:#e7edf4; }
.dc-hhp-hero__link { display:block; color:inherit; text-decoration:none; }
.dc-hhp-hero__media { display:block; width:100%; height:610px; overflow:hidden; background:#e7edf4; }
.dc-hhp-hero__image,
.elementor .dc-hhp-hero img.dc-hhp-hero__image {
    display:block;
    width:100%;
    max-width:none;
    height:100%;
    min-height:100%;
    object-fit:cover;
    object-position:center center;
}

/* Anchor navigation */
.dc-hhp-anchor-nav {
    position:relative;
    z-index:30;
    width:100%;
    background:#fff;
    --dc-hhp-scroll-offset:110px;
    --dc-hhp-sticky-top:0px;
}
/* Native sticky is the no-JS fallback. JS promotes it to fixed positioning so
 * Elementor containers with short/overflow ancestors cannot cancel sticky. */
.dc-hhp-anchor-nav.is-sticky { position:sticky; top:var(--dc-hhp-sticky-top, 0px); }
.dc-hhp-anchor-nav.is-sticky.dc-hhp-sticky-managed { position:relative; top:auto; }
.dc-hhp-anchor-nav.is-sticky.is-fixed {
    position:fixed;
    top:var(--dc-hhp-sticky-top, 0px);
    z-index:1000;
}
.dc-hhp-anchor-nav__placeholder {
    display:block;
    width:100%;
    height:0;
    min-height:0;
    margin:0;
    padding:0;
    border:0;
    pointer-events:none;
}
.dc-hhp-anchor-nav__inner {
    width:100%;
    max-width:1366px;
    min-height:90px;
    margin-inline:auto;
    padding-inline:20px;
    display:flex;
    align-items:stretch;
    justify-content:space-between;
    gap:28px;
    min-width:0;
}
.dc-hhp-anchor-nav__rail {
    align-self:stretch;
    display:flex;
    align-items:stretch;
    min-width:0;
    overflow-x:auto;
    overscroll-behavior-inline:contain;
    scrollbar-width:none;
}
.dc-hhp-anchor-nav__rail::-webkit-scrollbar { display:none; }
.dc-hhp-anchor-nav__links {
    align-self:stretch;
    display:flex;
    align-items:stretch;
    gap:56px;
    width:max-content;
    min-width:100%;
}
.dc-hhp-anchor-nav__link {
    position:relative;
    display:inline-flex;
    align-items:center;
    align-self:stretch;
    min-height:48px;
    padding:0;
    color:#373737;
    text-decoration:none;
    white-space:nowrap;
    font-size:20px;
    line-height:1.2;
    transition:color .2s ease;
}
.dc-hhp-anchor-nav__link::after {
    content:"";
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    height:5px;
    transform:scaleX(0);
    transform-origin:center;
    background:#e00000;
    transition:transform .22s ease;
}
.dc-hhp-anchor-nav__link:hover,
.dc-hhp-anchor-nav__link:focus-visible,
.dc-hhp-anchor-nav__link.is-active { color:#e00000; }
.dc-hhp-anchor-nav__link.is-active::after { transform:scaleX(1); }
.elementor .dc-hhp-anchor-nav a.dc-hhp-anchor-nav__cta,
.dc-hhp-anchor-nav a.dc-hhp-anchor-nav__cta {
    align-self:center;
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:185px;
    min-height:52px;
    padding:12px 28px;
    border:0;
    border-radius:0;
    background:#201a7a;
    color:#fff;
    text-decoration:none;
    text-align:center;
    line-height:1.2;
    transition:background-color .2s ease,color .2s ease;
}
.elementor .dc-hhp-anchor-nav a.dc-hhp-anchor-nav__cta:hover,
.elementor .dc-hhp-anchor-nav a.dc-hhp-anchor-nav__cta:focus,
.elementor .dc-hhp-anchor-nav a.dc-hhp-anchor-nav__cta:focus-visible,
.elementor .dc-hhp-anchor-nav a.dc-hhp-anchor-nav__cta:active,
.dc-hhp-anchor-nav a.dc-hhp-anchor-nav__cta:hover { background:#e00000; color:#fff; }

/* Overview */
.dc-hhp-overview { width:100%; background:#f4f7fb; scroll-margin-top:var(--dc-hhp-global-scroll-offset,110px); }
.dc-hhp-overview__inner { width:100%; max-width:1180px; margin-inline:auto; min-width:0; }
.dc-hhp-overview__grid { display:flex; align-items:stretch; column-gap:52px; min-width:0; }
.dc-hhp-overview__content { flex:1 1 54%; min-width:0; }
.dc-hhp-overview__title {
    margin:0;
    color:#171774;
    font-family:"Arial Narrow", Arial, sans-serif;
    font-size:clamp(34px,3vw,48px);
    line-height:1.08;
    font-weight:700;
    text-transform:uppercase;
    overflow-wrap:anywhere;
}
.dc-hhp-overview__address { display:flex; align-items:flex-start; gap:8px; margin-top:12px; color:#e00000; font-size:15px; line-height:1.5; text-transform:uppercase; overflow-wrap:anywhere; }
.dc-hhp-overview__address-icon { display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto; width:1.2em; min-height:1.5em; }
.dc-hhp-overview__address-icon svg,
.dc-hhp-overview__address-icon i { width:1em; height:1em; fill:currentColor; color:currentColor; }
.dc-hhp-overview__body { margin-top:16px; color:#4f4f4f; font-size:15px; line-height:1.75; overflow-wrap:anywhere; }
.dc-hhp-overview__body > :first-child { margin-top:0; }
.dc-hhp-overview__body > :last-child { margin-bottom:0; }
.dc-hhp-overview__body img,
.dc-hhp-overview__body iframe,
.dc-hhp-overview__body video,
.dc-hhp-overview__body table,
.dc-hhp-overview__body pre { max-width:100%; }
.dc-hhp-overview__actions { margin-top:18px; }
.dc-hhp-overview__info-card {
    flex:0 1 42%;
    min-width:0;
    padding:26px 24px;
    background:#171774;
    color:#fff;
    align-self:flex-start;
}
.dc-hhp-overview__info-title { margin:0 0 14px; color:inherit; font-size:18px; line-height:1.35; font-weight:700; text-transform:uppercase; }
.dc-hhp-overview__info-content { min-width:0; color:inherit; font-size:14px; line-height:1.65; overflow-wrap:anywhere; }
.dc-hhp-overview__info-content > :first-child { margin-top:0; }
.dc-hhp-overview__info-content > :last-child { margin-bottom:0; }
.dc-hhp-overview__info-content p { margin:0 0 5px; color:inherit; }
.dc-hhp-overview__info-content ul, .dc-hhp-overview__info-content ol { margin:5px 0 8px 1.2em; padding:0; }
.dc-hhp-overview__info-content li + li { margin-top:3px; }
.dc-hhp-overview__info-content a { color:inherit; text-decoration:underline; text-underline-offset:2px; }
.dc-hhp-overview__specs { margin:0; font-size:14px; line-height:1.6; }
.dc-hhp-overview__spec-row { display:flex; flex-wrap:wrap; gap:0 5px; min-width:0; }
.dc-hhp-overview__spec-row + .dc-hhp-overview__spec-row { margin-top:3px; }
.dc-hhp-overview__spec-row dt { font-weight:400; flex:0 0 auto; }
.dc-hhp-overview__spec-row dd { margin:0; min-width:0; overflow-wrap:anywhere; }

/* Gallery */
.dc-hhp-gallery { width:100%; background:#f4f7fb; scroll-margin-top:var(--dc-hhp-global-scroll-offset,110px); }
.dc-hhp-gallery__inner { width:100%; max-width:1180px; margin-inline:auto; min-width:0; }
.dc-hhp-gallery__heading {
    margin:0 0 12px;
    max-width:100%;
    min-width:0;
    color:#171774;
    font-family:"Arial Narrow", "Roboto Condensed", Arial, sans-serif;
    font-size:22px;
    font-weight:700;
    line-height:1.2;
    text-transform:uppercase;
    overflow-wrap:anywhere;
}
.dc-hhp-gallery__stage { position:relative; width:100%; height:565px; overflow:hidden; background:#e7edf4; }
.dc-hhp-gallery__slide { position:absolute; inset:0; margin:0; opacity:0; visibility:hidden; pointer-events:none; transition:opacity .42s ease, visibility .42s ease; }
.dc-hhp-gallery__slide.is-active { opacity:1; visibility:visible; pointer-events:auto; z-index:2; }
.dc-hhp-gallery__lightbox {
    display:block;
    width:100%;
    height:100%;
    color:inherit;
    text-decoration:none;
    cursor:zoom-in;
    outline-offset:-3px;
}
.dc-hhp-gallery__lightbox:focus-visible { outline:2px solid currentColor; }
.dc-hhp-gallery__image,
.elementor .dc-hhp-gallery img.dc-hhp-gallery__image { display:block; width:100%; max-width:none; height:100%; min-height:100%; object-fit:cover; object-position:center; }
.dc-hhp-gallery__thumbs { position:relative; margin-top:7px; min-width:0; }
.dc-hhp-gallery__thumbs-viewport { overflow-x:auto; overscroll-behavior-inline:contain; scrollbar-width:none; scroll-behavior:smooth; }
.dc-hhp-gallery__thumbs-viewport::-webkit-scrollbar { display:none; }
.dc-hhp-gallery__thumbs-track { display:flex; align-items:stretch; gap:7px; width:max-content; min-width:100%; }
.elementor .dc-hhp-gallery button.dc-hhp-gallery__thumb,
.dc-hhp-gallery button.dc-hhp-gallery__thumb {
    appearance:none;
    -webkit-appearance:none;
    flex:0 0 200px;
    width:200px;
    height:112px;
    min-width:0;
    padding:0;
    margin:0;
    border:0;
    border-radius:0;
    overflow:hidden;
    background:transparent;
    color:inherit;
    opacity:.48;
    cursor:pointer;
    transition:opacity .22s ease, transform .22s ease;
}
.elementor .dc-hhp-gallery button.dc-hhp-gallery__thumb:hover,
.elementor .dc-hhp-gallery button.dc-hhp-gallery__thumb:focus,
.elementor .dc-hhp-gallery button.dc-hhp-gallery__thumb:focus-visible,
.elementor .dc-hhp-gallery button.dc-hhp-gallery__thumb:active,
.dc-hhp-gallery button.dc-hhp-gallery__thumb.is-active { background:transparent; color:inherit; }
.dc-hhp-gallery__thumb.is-active { opacity:1; }
.dc-hhp-gallery__thumb-image,
.elementor .dc-hhp-gallery img.dc-hhp-gallery__thumb-image { display:block; width:100%; max-width:none; height:100%; min-height:100%; object-fit:cover; }
.elementor .dc-hhp-gallery button.dc-hhp-gallery__arrow,
.dc-hhp-gallery button.dc-hhp-gallery__arrow {
    appearance:none;
    -webkit-appearance:none;
    position:absolute;
    top:50%;
    z-index:5;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:58px;
    height:58px;
    min-width:44px;
    min-height:44px;
    padding:0;
    margin:0;
    border:1px solid rgba(255,255,255,.85);
    border-radius:50%;
    transform:translateY(-50%);
    background:rgba(120,120,120,.46);
    color:#fff;
    font-size:18px;
    line-height:1;
    cursor:pointer;
    transition:background-color .2s ease,color .2s ease,border-color .2s ease,opacity .2s ease;
}
.elementor .dc-hhp-gallery button.dc-hhp-gallery__arrow:hover,
.elementor .dc-hhp-gallery button.dc-hhp-gallery__arrow:focus,
.elementor .dc-hhp-gallery button.dc-hhp-gallery__arrow:focus-visible,
.elementor .dc-hhp-gallery button.dc-hhp-gallery__arrow:active,
.dc-hhp-gallery button.dc-hhp-gallery__arrow:hover { background:#201a7a; color:#fff; }
.dc-hhp-gallery__arrow svg,
.dc-hhp-gallery__arrow i { width:1em; height:1em; color:currentColor; fill:currentColor; }
.dc-hhp-gallery__arrow--prev { left:58px; }
.dc-hhp-gallery__arrow--next { right:58px; }
.dc-hhp-gallery__arrow[disabled] { opacity:.38; cursor:default; }

/* Location */
.dc-hhp-location { width:100%; background:#f4f7fb; scroll-margin-top:var(--dc-hhp-global-scroll-offset,110px); }
.dc-hhp-location__inner { width:100%; max-width:1180px; margin-inline:auto; min-width:0; }
.dc-hhp-location__advantages-title,
.dc-hhp-location__title {
    margin:0;
    color:#171774;
    font-family:"Arial Narrow", Arial, sans-serif;
    font-size:clamp(30px,2.2vw,42px);
    line-height:1.1;
    font-weight:700;
    text-transform:uppercase;
    overflow-wrap:anywhere;
}
.dc-hhp-location__advantages-body,
.dc-hhp-location__body { margin-top:14px; color:#444; font-size:15px; line-height:1.7; overflow-wrap:anywhere; }
.dc-hhp-location__advantages-body > :first-child,
.dc-hhp-location__body > :first-child { margin-top:0; }
.dc-hhp-location__advantages-body > :last-child,
.dc-hhp-location__body > :last-child { margin-bottom:0; }
.dc-hhp-location__advantages-body p,
.dc-hhp-location__body p { margin-block:0 0.55em; }
.dc-hhp-location__advantages-body ul,
.dc-hhp-location__advantages-body ol,
.dc-hhp-location__body ul,
.dc-hhp-location__body ol { margin-block:0.35em 0.7em; padding-inline-start:1.4em; }
.dc-hhp-location__advantages-body img,
.dc-hhp-location__advantages-body iframe,
.dc-hhp-location__advantages-body video,
.dc-hhp-location__advantages-body table,
.dc-hhp-location__advantages-body pre,
.dc-hhp-location__body img,
.dc-hhp-location__body iframe,
.dc-hhp-location__body video,
.dc-hhp-location__body table,
.dc-hhp-location__body pre { max-width:100%; }
.dc-hhp-location__map-grid { --dc-hhp-map-width:50%; --dc-hhp-map-stack-height:240px; display:grid; grid-template-columns:minmax(0,var(--dc-hhp-map-width)) minmax(0,1fr); align-items:stretch; margin-top:36px; min-width:0; }
.dc-hhp-location__map-grid--info-only { grid-template-columns:minmax(0,1fr); }
.dc-hhp-location__map-media { position:relative; align-self:stretch; height:auto; min-height:0; overflow:hidden; background:#e5ebf1; min-width:0; }
.dc-hhp-location__map-frame { position:absolute; inset:0; display:block; width:100%; max-width:none; height:100%; min-height:100%; border:0; }
.dc-hhp-location__info { min-width:0; padding:28px 34px; background:#fff; }
.dc-hhp-location__address { display:flex; align-items:flex-start; gap:8px; margin-top:16px; color:#e00000; font-size:14px; line-height:1.5; text-transform:uppercase; overflow-wrap:anywhere; }
.dc-hhp-location__address-icon { display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto; min-height:1.5em; }
.dc-hhp-location__address-icon svg,
.dc-hhp-location__address-icon i { width:1em; height:1em; fill:currentColor; color:currentColor; }
.dc-hhp-location__button { margin-top:16px; min-width:150px; }

/* Documents */
.dc-hhp-docs { width:100%; background:#fff; scroll-margin-top:var(--dc-hhp-global-scroll-offset,110px); }
.dc-hhp-docs__inner { width:100%; max-width:1180px; margin-inline:auto; min-width:0; }
.dc-hhp-docs__grid { display:flex; align-items:flex-start; gap:36px; min-width:0; }
.dc-hhp-docs__documents { flex:1 1 50%; min-width:0; }
.dc-hhp-docs__form { flex:1 1 50%; min-width:0; scroll-margin-top:var(--dc-hhp-global-scroll-offset,110px); }
.dc-hhp-docs__title,
.dc-hhp-docs__form-title {
    margin:0 0 20px;
    color:#171774;
    font-family:"Arial Narrow", Arial, sans-serif;
    font-size:clamp(30px,2.2vw,42px);
    line-height:1.1;
    font-weight:700;
    text-transform:uppercase;
    overflow-wrap:anywhere;
}
.dc-hhp-docs__form-description { margin:-6px 0 18px; color:#555; font-size:15px; line-height:1.65; overflow-wrap:anywhere; }
.dc-hhp-docs__list { background:#f3f6fa; }
/* Dynamic four-row viewport: JS measures actual item boxes so long text never clips. */
.dc-hhp-docs__list[data-dc-hhp-doc-scroll] { position:relative; min-width:0; max-width:100%; }
.dc-hhp-docs__list[data-dc-hhp-doc-scroll].dc-hhp-docs__list--scroll-ready {
    max-height:var(--dc-hhp-docs-scroll-height);
    overflow-x:hidden;
    overflow-y:auto;
    scrollbar-gutter:stable;
    scrollbar-width:thin;
    scrollbar-color:#b7c0d2 transparent;
    -webkit-overflow-scrolling:touch;
}
.dc-hhp-docs__list[data-dc-hhp-doc-scroll].dc-hhp-docs__list--scroll-ready:focus-visible {
    outline:2px solid #171774;
    outline-offset:2px;
}
.dc-hhp-docs__list.is-empty { min-height:64px; display:flex; align-items:center; }
.dc-hhp-docs__empty { width:100%; padding:18px; color:#666; font-size:14px; line-height:1.5; overflow-wrap:anywhere; }
.dc-hhp-docs__grid--documents-only .dc-hhp-docs__documents { flex-basis:100%; width:100%; }
.dc-hhp-docs__item { display:grid; grid-template-columns:34px minmax(0,1fr) 44px; align-items:center; gap:10px; padding:16px 14px 16px 18px; border-bottom:1px solid #d8dee7; min-width:0; }
.dc-hhp-docs__item:last-child { border-bottom:0; }
.dc-hhp-docs__file-icon { display:inline-flex; align-items:center; justify-content:center; color:#d51818; font-size:30px; }
.dc-hhp-docs__file-icon svg,
.dc-hhp-docs__file-icon i { width:1em; height:1em; fill:currentColor; color:currentColor; }
.dc-hhp-docs__item-text { min-width:0; }
.dc-hhp-docs__item-title { color:#454545; font-size:14px; line-height:1.45; font-weight:600; overflow-wrap:anywhere; }
.dc-hhp-docs__item-subtitle { margin-top:2px; color:#171774; font-size:13px; line-height:1.4; overflow-wrap:anywhere; }
.elementor .dc-hhp-docs a.dc-hhp-docs__download,
.dc-hhp-docs a.dc-hhp-docs__download {
    appearance:none;
    -webkit-appearance:none;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:44px;
    height:44px;
    min-width:44px;
    min-height:44px;
    padding:0;
    border:1px solid #171774;
    border-radius:0;
    background:transparent;
    color:#171774;
    text-decoration:none;
    transition:background-color .2s ease,color .2s ease;
}
.elementor .dc-hhp-docs a.dc-hhp-docs__download:hover,
.elementor .dc-hhp-docs a.dc-hhp-docs__download:focus,
.elementor .dc-hhp-docs a.dc-hhp-docs__download:focus-visible,
.elementor .dc-hhp-docs a.dc-hhp-docs__download:active,
.dc-hhp-docs a.dc-hhp-docs__download:hover { background:#171774; color:#fff; }
.dc-hhp-docs__download svg,
.dc-hhp-docs__download i { width:1em; height:1em; fill:currentColor; color:currentColor; }
.dc-hhp-docs__form-content { min-width:0; }
.dc-hhp-docs__field-shell {
    position:relative;
    display:block;
    width:100%;
    max-width:100%;
    min-width:0;
    flex:1 1 100%;
}
.dc-hhp-docs__field-icon {
    position:absolute;
    z-index:2;
    left:var(--dc-hhp-form-icon-left,14px);
    top:50%;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:1em;
    height:1em;
    color:#98a5b5;
    font-size:16px;
    line-height:1;
    pointer-events:none;
    transform:translateY(-50%);
}
.dc-hhp-docs__field-shell.is-textarea .dc-hhp-docs__field-icon {
    top:16px;
    transform:none;
}
.dc-hhp-docs__field-icon svg,
.dc-hhp-docs__field-icon i {
    display:block;
    width:1em;
    height:1em;
    max-width:1em;
    max-height:1em;
    color:currentColor;
    fill:currentColor;
}
.elementor .dc-hhp-docs .dc-hhp-docs__field-shell > input.dc-hhp-docs__field-control,
.elementor .dc-hhp-docs .dc-hhp-docs__field-shell > textarea.dc-hhp-docs__field-control,
.dc-hhp-docs .dc-hhp-docs__field-shell > input.dc-hhp-docs__field-control,
.dc-hhp-docs .dc-hhp-docs__field-shell > textarea.dc-hhp-docs__field-control {
    width:100%;
    max-width:100%;
    padding-left:var(--dc-hhp-form-icon-padding,44px);
}
.dc-hhp-docs__form-icon-templates[hidden] { display:none; }
.dc-hhp-docs__form-content iframe,
.dc-hhp-docs__form-content img,
.dc-hhp-docs__form-content video { max-width:100%; }

/* Laptop */
@media (max-width: 1280px) {
    .dc-hhp-project-card__content { padding:44px 34px; }
    .dc-hhp-project-card__title { margin-top:20px; }
    .dc-hhp-anchor-nav__links { gap:42px; }
    .dc-hhp-gallery__arrow--prev { left:30px; }
    .dc-hhp-gallery__arrow--next { right:30px; }
}

/* Tablet / compact desktop */
@media (max-width: 1024px) {
    .dc-hhp-listing__toolbar { align-items:stretch; flex-wrap:wrap; }
    .dc-hhp-listing__filter-rail { flex:1 1 100%; width:100%; }
    .dc-hhp-listing__filters { flex-wrap:nowrap; min-width:max-content; }
    .dc-hhp-listing__search { width:min(100%,360px); margin-left:auto; }
    .dc-hhp-project-card { min-height:360px; }
    .dc-hhp-project-card__content { padding:36px 28px; }
    .dc-hhp-project-card__title { font-size:clamp(28px,4vw,38px); }
    .dc-hhp-project-card__meta,
    .dc-hhp-project-card__excerpt { font-size:14px; }
    .dc-hhp-hero__media { height:460px; }
    .dc-hhp-anchor-nav__inner { min-height:76px; gap:18px; padding-inline:18px; }
    .dc-hhp-anchor-nav__links { gap:32px; }
    .dc-hhp-anchor-nav__link { font-size:17px; }
    .dc-hhp-anchor-nav__cta { min-width:150px; }
    .dc-hhp-overview__grid { column-gap:32px; }
    .dc-hhp-overview__info-card { flex-basis:44%; }
    .dc-hhp-gallery__stage { height:460px; }
    .dc-hhp-gallery__thumb { flex-basis:170px; width:170px; height:96px; }
    .dc-hhp-docs__grid { gap:28px; }
}

/* Mobile structure */
@media (max-width: 767px) {
    .dc-hhp-listing__heading { margin-bottom:14px; }
    .dc-hhp-listing__eyebrow { font-size:16px; margin-bottom:8px; }
    .dc-hhp-listing__title { font-size:clamp(28px,9vw,38px); }
    .dc-hhp-listing__toolbar { display:grid; grid-template-columns:minmax(0,1fr); gap:12px; margin-bottom:18px; }
    .dc-hhp-listing__filter-rail { width:100%; }
    .dc-hhp-listing__filters { gap:8px; }
    .dc-hhp-listing__filter-link { min-height:44px; padding:9px 16px; }
    .dc-hhp-listing__search { width:100%; max-width:none; grid-template-columns:minmax(0,1fr) 48px; margin:0; }
    .elementor .dc-hhp-listing input.dc-hhp-listing__search-input,
    .dc-hhp-listing input.dc-hhp-listing__search-input,
    .elementor .dc-hhp-listing button.dc-hhp-listing__search-button,
    .dc-hhp-listing button.dc-hhp-listing__search-button { min-height:48px; height:48px; }
    .elementor .dc-hhp-listing button.dc-hhp-listing__search-button,
    .dc-hhp-listing button.dc-hhp-listing__search-button { width:48px; min-width:48px; }
    .dc-hhp-project-card { display:block; min-height:0; }
    .dc-hhp-project-card__media { display:block; width:100%; height:260px; }
    .dc-hhp-project-card__content { width:100%; padding:28px 20px 30px; }
    .dc-hhp-project-card__type { font-size:14px; }
    .dc-hhp-project-card__title { margin-top:14px; font-size:clamp(28px,8vw,36px); }
    .dc-hhp-project-card__meta { margin-top:10px; gap:3px 7px; }
    .dc-hhp-project-card__excerpt { line-height:1.65; }
    .dc-hhp-project-card__button { width:100%; min-width:0; }

    .dc-hhp-hero__media { height:300px; }

    .dc-hhp-anchor-nav { --dc-hhp-scroll-offset:76px; }
    .dc-hhp-anchor-nav__inner { min-height:68px; display:grid; grid-template-columns:minmax(0,1fr); gap:10px; padding:8px 14px 10px; }
    .dc-hhp-anchor-nav__rail { width:100%; }
    .dc-hhp-anchor-nav__links { min-width:max-content; gap:24px; }
    .dc-hhp-anchor-nav__link { min-height:48px; font-size:15px; }
    .dc-hhp-anchor-nav__link::after { height:3px; }
    .elementor .dc-hhp-anchor-nav a.dc-hhp-anchor-nav__cta,
    .dc-hhp-anchor-nav a.dc-hhp-anchor-nav__cta { width:100%; min-width:0; min-height:48px; }

    .dc-hhp-overview__grid { display:block; }
    .dc-hhp-overview__content,
    .dc-hhp-overview__info-card { width:100%; max-width:100%; }
    .dc-hhp-overview__info-card { margin-top:28px; padding:22px 18px; }
    .dc-hhp-overview__spec-row { display:block; }
    .dc-hhp-overview__spec-row dt { font-weight:600; }

    .dc-hhp-gallery__stage { height:300px; }
    .dc-hhp-gallery__thumb { flex-basis:130px; width:130px; height:80px; }
    .elementor .dc-hhp-gallery button.dc-hhp-gallery__arrow,
    .dc-hhp-gallery button.dc-hhp-gallery__arrow { width:48px; height:48px; }
    .dc-hhp-gallery__arrow--prev { left:12px; }
    .dc-hhp-gallery__arrow--next { right:12px; }

    .dc-hhp-location__map-grid { grid-template-columns:minmax(0,1fr); }
    .dc-hhp-location__map-media { height:var(--dc-hhp-map-stack-height,240px); min-height:var(--dc-hhp-map-stack-height,240px); }
    .dc-hhp-location__info { padding:24px 20px; }
    .dc-hhp-location__button { width:100%; }

    .dc-hhp-docs__grid { display:block; }
    .dc-hhp-docs__documents,
    .dc-hhp-docs__form { width:100%; max-width:100%; }
    .dc-hhp-docs__form { margin-top:34px; }
    .dc-hhp-docs__item { grid-template-columns:30px minmax(0,1fr) 44px; padding:14px 10px 14px 12px; }
}

@media (max-width: 430px) {
    .dc-hhp-project-card__media { height:230px; }
    .dc-hhp-project-card__content { padding:24px 18px 26px; }
    .dc-hhp-project-card__meta-sep { display:none; }
    .dc-hhp-project-card__meta { display:grid; gap:3px; }
    .dc-hhp-hero__media { height:260px; }
    .dc-hhp-gallery__stage { height:260px; }
    .dc-hhp-gallery__thumb { flex-basis:112px; width:112px; height:72px; }
    .dc-hhp-gallery__arrow--prev { left:8px; }
    .dc-hhp-gallery__arrow--next { right:8px; }
    .dc-hhp-docs__item { gap:8px; }
}

@media (max-width: 360px) {
    .dc-hhp-project-card__media { height:210px; }
    .dc-hhp-project-card__title { font-size:27px; }
    .dc-hhp-hero__media { height:230px; }
    .dc-hhp-gallery__stage { height:230px; }
    .dc-hhp-gallery__thumb { flex-basis:100px; width:100px; height:68px; }
    .dc-hhp-docs__item { grid-template-columns:26px minmax(0,1fr) 40px; padding-inline:9px; }
    .dc-hhp-docs__file-icon { font-size:25px; }
}

@media (prefers-reduced-motion: reduce) {
    .dc-hhp-motion--pending [data-dc-hhp-motion-item],
    .dc-hhp-gallery__slide,
    .dc-hhp-project-card__image,
    .dc-hhp-anchor-nav__link::after {
        transition:none;
        animation:none;
        opacity:1;
        transform:none;
        visibility:visible;
    }
}

/* Related projects */
.dc-hhp-related,
.dc-hhp-related * { box-sizing:border-box; }
.dc-hhp-related { width:100%; background:#f4f7fb; }
.dc-hhp-related__inner { width:100%; margin-inline:auto; min-width:0; }
.dc-hhp-related__heading {
    margin:0 0 16px;
    color:#111072;
    font-size:32px;
    line-height:1.15;
    font-weight:700;
    overflow-wrap:anywhere;
}
.dc-hhp-related__list { display:grid; grid-template-columns:minmax(0,1fr); gap:22px; }
.dc-hhp-related-card {
    --dc-hhp-related-media-width:50%;
    display:grid;
    grid-template-columns:minmax(0,var(--dc-hhp-related-media-width)) minmax(0,1fr);
    min-width:0;
    min-height:400px;
    overflow:hidden;
    background:#fff;
}
.dc-hhp-related-card__media {
    position:relative;
    display:block;
    min-width:0;
    min-height:100%;
    overflow:hidden;
    background:#e8edf3;
}
.dc-hhp-related-card__image,
.elementor .dc-hhp-related-card img.dc-hhp-related-card__image {
    position:absolute;
    inset:0;
    display:block;
    width:100%;
    max-width:none;
    height:100%;
    min-height:100%;
    object-fit:cover;
    object-position:center center;
    transition:transform .35s ease;
}
.dc-hhp-related-card:hover .dc-hhp-related-card__image { transform:scale(1.025); }
.dc-hhp-related-card__placeholder { position:absolute; inset:0; display:block; background:linear-gradient(135deg,#edf1f6,#dfe6ee); }
.dc-hhp-related-card__content {
    display:flex;
    flex-direction:column;
    justify-content:center;
    min-width:0;
    max-width:100%;
    padding:28px;
}
.dc-hhp-related-card__type {
    margin:0;
    color:#e00000;
    font-size:14px;
    line-height:1.35;
    font-weight:600;
    overflow-wrap:anywhere;
}
.dc-hhp-related-card__type > span { font-size:.68em; vertical-align:.08em; }
.dc-hhp-related-card__title {
    margin:14px 0 0;
    color:#111072;
    font-size:30px;
    line-height:1.15;
    font-weight:700;
    overflow-wrap:anywhere;
}
.elementor .dc-hhp-related .dc-hhp-related-card__title > a,
.dc-hhp-related .dc-hhp-related-card__title > a {
    color:inherit;
    font:inherit;
    line-height:inherit;
    letter-spacing:inherit;
    text-transform:inherit;
    text-decoration:none;
    transition:color .2s ease;
}
.dc-hhp-related-card__meta {
    display:flex;
    flex-wrap:wrap;
    gap:4px 8px;
    margin-top:10px;
    color:#e00000;
    font-size:13px;
    line-height:1.45;
    overflow-wrap:anywhere;
}
.dc-hhp-related-card__excerpt {
    margin-top:10px;
    color:#555;
    font-size:14px;
    line-height:1.6;
    overflow-wrap:anywhere;
}
.dc-hhp-related-card__actions { margin-top:14px; }
.elementor .dc-hhp-related a.dc-hhp-related-card__button,
.dc-hhp-related a.dc-hhp-related-card__button {
    appearance:none;
    -webkit-appearance:none;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:112px;
    min-height:44px;
    padding:10px 20px;
    border:0;
    border-radius:0;
    background:#201a7a;
    color:#fff;
    text-decoration:none;
    text-align:center;
    line-height:1.2;
    cursor:pointer;
    transition:background-color .22s ease,color .22s ease,border-color .22s ease,box-shadow .22s ease,transform .22s ease;
}
.elementor .dc-hhp-related a.dc-hhp-related-card__button:hover,
.elementor .dc-hhp-related a.dc-hhp-related-card__button:focus,
.elementor .dc-hhp-related a.dc-hhp-related-card__button:focus-visible,
.elementor .dc-hhp-related a.dc-hhp-related-card__button:active,
.dc-hhp-related a.dc-hhp-related-card__button:hover,
.dc-hhp-related a.dc-hhp-related-card__button:focus-visible,
.dc-hhp-related a.dc-hhp-related-card__button:active {
    background:#e00000;
    color:#fff;
    text-decoration:none;
}
.dc-hhp-related-card__button:focus-visible,
.dc-hhp-related-card__title > a:focus-visible,
.dc-hhp-related-card__media:focus-visible {
    outline:2px solid currentColor;
    outline-offset:3px;
}
.dc-hhp-related__empty {
    padding:18px 20px;
    background:#fff;
    color:#555;
    font-size:15px;
    line-height:1.6;
}

@media (max-width:1024px) {
    .dc-hhp-related-card { --dc-hhp-related-media-width:48%; min-height:200px; }
    .dc-hhp-related-card__content { padding:24px; }
    .dc-hhp-related-card__title { font-size:clamp(26px,3.5vw,32px); }
}

@media (max-width:767px) {
    .dc-hhp-related__heading { font-size:clamp(27px,8vw,34px); }
    .dc-hhp-related-card { display:block; min-height:0; }
    .dc-hhp-related-card__media { width:100%; min-height:0; height:260px; }
    .dc-hhp-related-card__content { width:100%; padding:24px 20px 26px; }
    .dc-hhp-related-card__title { margin-top:12px; font-size:clamp(27px,8vw,34px); }
    .dc-hhp-related-card__button { min-height:48px; }
}

@media (max-width:430px) {
    .dc-hhp-related-card__media { height:230px; }
    .dc-hhp-related-card__content { padding:22px 18px 24px; }
    .dc-hhp-related-card__meta-sep { display:none; }
    .dc-hhp-related-card__meta { display:grid; gap:3px; }
    .dc-hhp-related-card__button { width:100%; min-width:0; }
}

@media (max-width:360px) {
    .dc-hhp-related-card__media { height:210px; }
    .dc-hhp-related-card__title { font-size:27px; }
}

@media (prefers-reduced-motion:reduce) {
    .dc-hhp-related-card__image { transition:none; transform:none; }
}

/* Featured projects - standalone section for non-project pages. */
.dc-hhp-featured,
.dc-hhp-featured * {
    box-sizing:border-box;
}
.dc-hhp-featured {
    position:relative;
    isolation:isolate;
    width:100%;
    overflow:hidden;
    background:#eef7fb;
}
.dc-hhp-featured__backdrop {
    position:absolute;
    inset:0;
    z-index:0;
    overflow:hidden;
    pointer-events:none;
}
.dc-hhp-featured__backdrop-image {
    position:absolute;
    inset:-42px;
    display:block;
    background-position:center;
    background-size:cover;
    background-repeat:no-repeat;
    transform:scale(1.08);
    opacity:.54;
    filter:blur(20px);
}
.dc-hhp-featured__backdrop-overlay {
    position:absolute;
    inset:0;
    display:block;
    background:linear-gradient(90deg,rgba(205,240,255,.82) 0%,rgba(255,255,255,.86) 53%,rgba(255,255,255,.56) 100%);
}
.dc-hhp-featured__inner {
    position:relative;
    z-index:1;
    width:100%;
    margin-inline:auto;
    min-width:0;
}
.dc-hhp-featured__header {
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:28px;
    min-width:0;
}
.dc-hhp-featured__heading-wrap {
    min-width:0;
}
.dc-hhp-featured__eyebrow {
    display:flex;
    align-items:center;
    gap:10px;
    margin:0 0 20px;
    color:#e00000;
    font-size:18px;
    line-height:1.3;
    font-weight:500;
    text-transform:uppercase;
}
.dc-hhp-featured__eyebrow::before {
    content:"";
    flex:0 0 auto;
    width:22px;
    height:1px;
    background:#e00000;
}
.dc-hhp-featured__title {
    margin:0;
    min-width:0;
    color:#171774;
    font-family:"Arial Narrow",Arial,sans-serif;
    font-size:clamp(34px,3vw,48px);
    line-height:1.05;
    font-weight:700;
    text-transform:uppercase;
    overflow-wrap:anywhere;
}
.elementor .dc-hhp-featured a.dc-hhp-featured__all,
.dc-hhp-featured a.dc-hhp-featured__all {
    appearance:none;
    -webkit-appearance:none;
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:140px;
    min-height:48px;
    padding:12px 24px;
    border:0;
    border-radius:0;
    background:#fff;
    color:#171774;
    text-decoration:none;
    text-align:center;
    line-height:1.2;
    box-shadow:0 3px 12px rgba(24,32,67,.12);
    transition:background-color .22s ease,color .22s ease,box-shadow .22s ease,transform .22s ease;
}
.elementor .dc-hhp-featured a.dc-hhp-featured__all:hover,
.elementor .dc-hhp-featured a.dc-hhp-featured__all:focus,
.elementor .dc-hhp-featured a.dc-hhp-featured__all:focus-visible,
.elementor .dc-hhp-featured a.dc-hhp-featured__all:active,
.dc-hhp-featured a.dc-hhp-featured__all:hover,
.dc-hhp-featured a.dc-hhp-featured__all:focus-visible,
.dc-hhp-featured a.dc-hhp-featured__all:active {
    background:#201a7a;
    color:#fff;
    text-decoration:none;
}
.dc-hhp-featured__all:focus-visible,
.dc-hhp-featured-card__link:focus-visible,
.dc-hhp-distribution__all:focus-visible,
.dc-hhp-distribution-card__link:focus-visible {
    outline:2px solid currentColor;
    outline-offset:3px;
}
.dc-hhp-featured__grid {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:36px;
    min-width:0;
}
.dc-hhp-featured-card {
    position:relative;
    min-width:0;
    height:340px;
    overflow:hidden;
    background:#dfe6ee;
}
.dc-hhp-featured-card__link {
    position:absolute;
    inset:0;
    z-index:1;
    display:block;
    color:inherit;
    text-decoration:none;
}
.dc-hhp-featured-card__link::after {
    content:"";
    position:absolute;
    inset:0;
    z-index:1;
    pointer-events:none;
    background:linear-gradient(180deg,rgba(0,0,0,0) 42%,rgba(0,0,0,.62) 100%);
}
.dc-hhp-featured-card__image,
.elementor .dc-hhp-featured-card img.dc-hhp-featured-card__image {
    position:absolute;
    inset:0;
    z-index:0;
    display:block;
    width:100%;
    max-width:none;
    height:100%;
    object-fit:cover;
    object-position:center;
    margin:0;
    transition:transform .5s cubic-bezier(.2,.72,.2,1);
}
.dc-hhp-featured-card__placeholder {
    position:absolute;
    inset:0;
    z-index:0;
    display:block;
    background:linear-gradient(135deg,#dce5ec,#bdc8d5);
}
.dc-hhp-featured-card__content {
    position:absolute;
    inset:auto 0 0;
    z-index:2;
    display:block;
    min-width:0;
    padding:24px 22px;
    color:#fff;
    pointer-events:none;
}
.dc-hhp-featured-card__type {
    display:block;
    margin:0 0 8px;
    color:#fff;
    font-size:14px;
    line-height:1.35;
    font-weight:500;
    overflow-wrap:anywhere;
}
.dc-hhp-featured-card__type > span {
    font-size:.76em;
    vertical-align:.08em;
}
.dc-hhp-featured-card__title {
    display:block;
    margin:0;
    color:#fff;
    font-size:24px;
    line-height:1.2;
    font-weight:500;
    text-transform:uppercase;
    overflow-wrap:anywhere;
}
.dc-hhp-featured-card__location {
    display:flex;
    align-items:center;
    flex-wrap:nowrap;
    gap:5px;
    max-width:100%;
    min-width:0;
    margin-top:7px;
    color:#fff;
    font-size:13px;
    font-weight:400;
    line-height:1.45;
    text-transform:none;
    overflow-wrap:anywhere;
}
.dc-hhp-featured-card__location-icon {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex:0 0 auto;
    width:15px;
    height:15px;
    color:#fff;
    font-size:15px;
    line-height:1;
}
.dc-hhp-featured-card__location-icon svg,
.elementor .dc-hhp-featured-card__location-icon img {
    display:block;
    width:15px;
    height:15px;
    max-width:100%;
    object-fit:contain;
    fill:currentColor;
}
.dc-hhp-featured-card__location-text {
    flex:1 1 auto;
    min-width:0;
    max-width:100%;
    overflow-wrap:anywhere;
}
.dc-hhp-featured-card--has-hover-icon .dc-hhp-featured-card__content {
    right:calc(var(--dc-hhp-hover-icon-box,54px) + var(--dc-hhp-hover-icon-offset,18px) + 10px);
}
.dc-hhp-featured-card__hover-icon {
    position:absolute;
    right:var(--dc-hhp-hover-icon-offset,18px);
    bottom:var(--dc-hhp-hover-icon-offset,18px);
    z-index:3;
    display:flex;
    align-items:center;
    justify-content:center;
    width:var(--dc-hhp-hover-icon-box,54px);
    height:var(--dc-hhp-hover-icon-box,54px);
    border:1px solid rgba(255,255,255,.85);
    border-radius:50%;
    background:rgba(40,40,40,.28);
    color:#fff;
    opacity:0;
    visibility:hidden;
    transform:translate3d(0,8px,0) scale(.92);
    transition:opacity .24s ease,visibility .24s ease,transform .28s cubic-bezier(.2,.72,.2,1),background-color .22s ease,border-color .22s ease,color .22s ease;
    pointer-events:none;
}
.dc-hhp-featured-card__hover-icon i,
.dc-hhp-featured-card__hover-icon svg {
    display:block;
    width:20px;
    height:20px;
    font-size:20px;
    line-height:1;
    fill:currentColor;
}
.dc-hhp-featured-card:hover .dc-hhp-featured-card__hover-icon,
.dc-hhp-featured-card:focus-within .dc-hhp-featured-card__hover-icon {
    opacity:1;
    visibility:visible;
    transform:translate3d(0,0,0) scale(1);
}
.dc-hhp-featured-card:hover .dc-hhp-featured-card__image,
.dc-hhp-featured-card:focus-within .dc-hhp-featured-card__image {
    transform:scale(1.06);
}
.dc-hhp-featured__empty {
    padding:24px;
    background:rgba(255,255,255,.72);
    color:#555;
    font-size:16px;
    line-height:1.6;
}

@media (max-width:1024px) {
    .dc-hhp-featured__header { align-items:center; }
    .dc-hhp-featured-card { height:280px; }
    .dc-hhp-featured-card__title { font-size:21px; }
}
@media (max-width:767px) {
    .dc-hhp-featured__header {
        align-items:flex-start;
        flex-direction:column;
        gap:22px;
    }
    .dc-hhp-featured__grid {
        grid-template-columns:minmax(0,1fr);
        gap:18px;
    }
    .dc-hhp-featured-card { height:250px; }
    .dc-hhp-featured__title { font-size:clamp(30px,9vw,40px); }
    .elementor .dc-hhp-featured a.dc-hhp-featured__all,
    .dc-hhp-featured a.dc-hhp-featured__all { min-height:48px; }
}
@media (max-width:430px) {
    .dc-hhp-featured-card { height:230px; }
    .dc-hhp-featured-card__content { padding:20px 18px; }
    .dc-hhp-featured-card__title { font-size:20px; }
    .dc-hhp-featured-card__type { font-size:13px; }
}
@media (max-width:360px) {
    .dc-hhp-featured-card { height:215px; }
    .elementor .dc-hhp-featured a.dc-hhp-featured__all,
    .dc-hhp-featured a.dc-hhp-featured__all { width:100%; min-width:0; }
}
@media (hover:none), (pointer:coarse) {
    .dc-hhp-featured-card__hover-icon {
        opacity:1;
        visibility:visible;
        transform:none;
    }
}
@media (prefers-reduced-motion: reduce) {
    .dc-hhp-featured-card__image { transition:none; transform:none; }
    .dc-hhp-featured-card__hover-icon { transition:none; transform:none; }
}

/* Distribution projects - asymmetric 1 large + 2 small section. */
.dc-hhp-distribution,
.dc-hhp-distribution * {
    box-sizing:border-box;
}
.dc-hhp-distribution {
    width:100%;
    background:#fff;
}
.dc-hhp-distribution__inner {
    width:100%;
    max-width:1024px;
    margin-inline:auto;
    min-width:0;
}
.dc-hhp-distribution__header {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:28px;
    min-width:0;
    margin:0 0 34px;
}
.dc-hhp-distribution__title {
    min-width:0;
    margin:0;
    color:#171774;
    font-family:"Arial Narrow",Arial,sans-serif;
    font-size:clamp(34px,3vw,46px);
    line-height:1.05;
    font-weight:700;
    text-transform:uppercase;
    overflow-wrap:anywhere;
}
.elementor .dc-hhp-distribution a.dc-hhp-distribution__all,
.dc-hhp-distribution a.dc-hhp-distribution__all {
    appearance:none;
    -webkit-appearance:none;
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:142px;
    min-height:48px;
    padding:12px 26px;
    border:0;
    border-radius:0;
    background:#211b7c;
    color:#fff;
    text-decoration:none;
    text-align:center;
    line-height:1.2;
    transition:background-color .22s ease,color .22s ease,box-shadow .22s ease,transform .22s ease;
}
.elementor .dc-hhp-distribution a.dc-hhp-distribution__all:hover,
.elementor .dc-hhp-distribution a.dc-hhp-distribution__all:focus,
.elementor .dc-hhp-distribution a.dc-hhp-distribution__all:focus-visible,
.elementor .dc-hhp-distribution a.dc-hhp-distribution__all:active,
.dc-hhp-distribution a.dc-hhp-distribution__all:hover,
.dc-hhp-distribution a.dc-hhp-distribution__all:focus-visible,
.dc-hhp-distribution a.dc-hhp-distribution__all:active {
    background:#e00000;
    color:#fff;
    text-decoration:none;
}
.dc-hhp-distribution__grid {
    --dc-hhp-distribution-primary-fr:2.1fr;
    --dc-hhp-distribution-grid-height:464px;
    --dc-hhp-distribution-primary-height:340px;
    --dc-hhp-distribution-secondary-height:230px;
    display:grid;
    grid-template-columns:minmax(0,var(--dc-hhp-distribution-primary-fr)) minmax(0,1fr);
    grid-template-rows:repeat(2,minmax(0,1fr));
    gap:26px;
    width:100%;
    height:var(--dc-hhp-distribution-grid-height);
    min-width:0;
}
.dc-hhp-distribution-card {
    --dc-hhp-distribution-icon-box:50px;
    --dc-hhp-distribution-icon-offset:16px;
    position:relative;
    min-width:0;
    min-height:0;
    overflow:hidden;
    background:#dfe6ee;
}
.dc-hhp-distribution-card--primary {
    grid-column:1;
    grid-row:1 / span 2;
}
.dc-hhp-distribution-card--secondary {
    grid-column:2;
}
.dc-hhp-distribution-card__link {
    position:absolute;
    inset:0;
    z-index:1;
    display:block;
    color:inherit;
    text-decoration:none;
    overflow:hidden;
}
.dc-hhp-distribution-card__link::after {
    content:"";
    position:absolute;
    inset:0;
    z-index:1;
    pointer-events:none;
    background:linear-gradient(180deg,rgba(0,0,0,0) 40%,rgba(0,0,0,.66) 100%);
}
.dc-hhp-distribution-card__image,
.elementor .dc-hhp-distribution-card img.dc-hhp-distribution-card__image {
    position:absolute;
    inset:0;
    z-index:0;
    display:block;
    width:100%;
    max-width:none;
    height:100%;
    margin:0;
    object-fit:cover;
    object-position:center;
    transition:transform .5s cubic-bezier(.2,.72,.2,1);
}
.dc-hhp-distribution-card__placeholder {
    position:absolute;
    inset:0;
    z-index:0;
    display:block;
    background:linear-gradient(135deg,#dce5ec,#bdc8d5);
}
.dc-hhp-distribution-card__content {
    position:absolute;
    inset:auto 0 0;
    z-index:2;
    display:block;
    min-width:0;
    color:#fff;
    pointer-events:none;
}
.dc-hhp-distribution-card--primary .dc-hhp-distribution-card__content {
    padding:30px;
}
.dc-hhp-distribution-card--secondary .dc-hhp-distribution-card__content {
    padding:16px;
}
.dc-hhp-distribution-card__type {
    display:block;
    margin:0 0 8px;
    color:#fff;
    font-size:14px;
    line-height:1.35;
    font-weight:600;
    overflow-wrap:anywhere;
}
.dc-hhp-distribution-card__type > span {
    font-size:.76em;
    vertical-align:.08em;
}
.dc-hhp-distribution-card__title {
    display:block;
    margin:0;
    color:#fff;
    line-height:1.25;
    font-weight:500;
    overflow-wrap:anywhere;
}
.dc-hhp-distribution-card--primary .dc-hhp-distribution-card__title {
    font-size:25px;
}
.dc-hhp-distribution-card--secondary .dc-hhp-distribution-card__title {
    font-size:17px;
}
/* Location metadata uses the existing project short-address field, shared with Featured Projects. */
.dc-hhp-distribution-card__location {
    display:flex;
    align-items:center;
    flex-wrap:nowrap;
    gap:5px;
    max-width:100%;
    min-width:0;
    margin-top:7px;
    color:#fff;
    font-size:13px;
    font-weight:400;
    line-height:1.45;
    text-transform:none;
    overflow-wrap:anywhere;
}
.dc-hhp-distribution-card--secondary .dc-hhp-distribution-card__location {
    font-size:12px;
}
.dc-hhp-distribution-card__location-icon {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex:0 0 auto;
    width:15px;
    height:15px;
    color:#fff;
    font-size:15px;
    line-height:1;
}
.dc-hhp-distribution-card__location-icon svg,
.elementor .dc-hhp-distribution-card__location-icon img {
    display:block;
    width:100%;
    height:100%;
    max-width:100%;
    object-fit:contain;
    fill:currentColor;
}
.dc-hhp-distribution-card__location-text {
    flex:1 1 auto;
    min-width:0;
    max-width:100%;
    overflow-wrap:anywhere;
}
.dc-hhp-distribution-card--has-hover-icon .dc-hhp-distribution-card__content {
    right:calc(var(--dc-hhp-distribution-icon-box) + var(--dc-hhp-distribution-icon-offset) + 8px);
}
.dc-hhp-distribution-card__hover-icon {
    position:absolute;
    right:var(--dc-hhp-distribution-icon-offset);
    bottom:var(--dc-hhp-distribution-icon-offset);
    z-index:3;
    display:flex;
    align-items:center;
    justify-content:center;
    width:var(--dc-hhp-distribution-icon-box);
    height:var(--dc-hhp-distribution-icon-box);
    border:1px solid rgba(255,255,255,.85);
    border-radius:50%;
    background:rgba(40,40,40,.28);
    color:#fff;
    opacity:0;
    visibility:hidden;
    transform:translate3d(0,8px,0) scale(.92);
    transition:opacity .24s ease,visibility .24s ease,transform .28s cubic-bezier(.2,.72,.2,1),background-color .22s ease,border-color .22s ease,color .22s ease;
    pointer-events:none;
}
.dc-hhp-distribution-card__hover-icon i,
.dc-hhp-distribution-card__hover-icon svg {
    display:block;
    width:18px;
    height:18px;
    font-size:18px;
    line-height:1;
    fill:currentColor;
}
.dc-hhp-distribution-card:hover .dc-hhp-distribution-card__hover-icon,
.dc-hhp-distribution-card:focus-within .dc-hhp-distribution-card__hover-icon {
    opacity:1;
    visibility:visible;
    transform:translate3d(0,0,0) scale(1);
}
.dc-hhp-distribution-card:hover .dc-hhp-distribution-card__image,
.dc-hhp-distribution-card:focus-within .dc-hhp-distribution-card__image {
    transform:scale(1.06);
}
.dc-hhp-distribution__empty {
    padding:24px;
    background:#f4f7fb;
    color:#555;
    font-size:16px;
    line-height:1.6;
}

@media (max-width:1024px) {
    .dc-hhp-distribution__grid {
        grid-template-columns:repeat(2,minmax(0,1fr));
        grid-template-rows:none;
        height:auto;
    }
    .dc-hhp-distribution-card--primary {
        grid-column:1 / -1;
        grid-row:auto;
        height:var(--dc-hhp-distribution-primary-height);
    }
    .dc-hhp-distribution-card--secondary {
        grid-column:auto;
        grid-row:auto;
        height:var(--dc-hhp-distribution-secondary-height);
    }
}
@media (max-width:767px) {
    .dc-hhp-distribution__header {
        align-items:flex-start;
        flex-direction:column;
        gap:20px;
    }
    .dc-hhp-distribution__grid {
        grid-template-columns:minmax(0,1fr);
    }
    .dc-hhp-distribution-card--primary,
    .dc-hhp-distribution-card--secondary {
        grid-column:1;
    }
    .dc-hhp-distribution-card--primary { height:var(--dc-hhp-distribution-primary-height); }
    .dc-hhp-distribution-card--secondary { height:var(--dc-hhp-distribution-secondary-height); }
    .dc-hhp-distribution__title { font-size:clamp(30px,9vw,40px); }
    .elementor .dc-hhp-distribution a.dc-hhp-distribution__all,
    .dc-hhp-distribution a.dc-hhp-distribution__all { min-height:48px; }
}
@media (max-width:430px) {
    .dc-hhp-distribution-card--primary .dc-hhp-distribution-card__content,
    .dc-hhp-distribution-card--secondary .dc-hhp-distribution-card__content { padding:20px 18px; }
    .dc-hhp-distribution-card--primary .dc-hhp-distribution-card__title { font-size:21px; }
    .dc-hhp-distribution-card--secondary .dc-hhp-distribution-card__title { font-size:19px; }
    .dc-hhp-distribution-card__type { font-size:13px; }
}
@media (max-width:360px) {
    .elementor .dc-hhp-distribution a.dc-hhp-distribution__all,
    .dc-hhp-distribution a.dc-hhp-distribution__all { width:100%; min-width:0; }
}
@media (hover:none), (pointer:coarse) {
    .dc-hhp-distribution-card__hover-icon {
        opacity:1;
        visibility:visible;
        transform:none;
    }
}
@media (prefers-reduced-motion:reduce) {
    .dc-hhp-distribution-card__image { transition:none; transform:none; }
    .dc-hhp-distribution-card__hover-icon { transition:none; transform:none; }
}

/* ---------------------------------------------------------
 * v1.5.4 - Project listing: split overview information cards.
 * --------------------------------------------------------- */
.dc-hhp-project-card__title { margin-top:14px; }
.dc-hhp-project-card__address {
    display:flex;
    align-items:flex-start;
    gap:7px;
    min-width:0;
    margin-top:12px;
    color:#d80000;
    font-size:14px;
    line-height:1.45;
    overflow-wrap:anywhere;
}
.dc-hhp-project-card__address-icon { flex:0 0 18px; display:inline-flex; align-items:center; justify-content:center; color:inherit; }
.dc-hhp-project-card__address-icon svg { display:block; width:18px; height:18px; }
.dc-hhp-project-card__facts {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
    align-items:stretch;
    margin-top:18px;
    min-width:0;
}
.dc-hhp-project-card__fact {
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:5px;
    min-width:0;
    padding:10px 12px;
    border:1px solid #d7dee8;
    background:#f3f6fa;
}
.dc-hhp-project-card__fact-text {
    display:flex;
    align-items:flex-start;
    min-width:0;
    gap:8px;
}
.dc-hhp-project-card__fact-icon {
    display:inline-flex;
    flex:0 0 19px;
    margin-top:2px;
    align-items:center;
    justify-content:center;
    color:#e00000;
}
.dc-hhp-project-card__fact-icon svg { display:block; width:19px; height:19px; flex:none; }
.dc-hhp-project-card__fact-label { color:#31343a; font-weight:600; font-size:13px; line-height:1.35; overflow-wrap:anywhere; min-width:0; }
.dc-hhp-project-card__fact-value { color:#171774; font-weight:700; font-size:14px; line-height:1.4; overflow-wrap:anywhere; min-width:0; }
/* The action is the fourth equal grid cell rather than a separate full-width button. */
.dc-hhp-listing .dc-hhp-project-card a.dc-hhp-project-card__button--detail,
.elementor .dc-hhp-listing .dc-hhp-project-card a.dc-hhp-project-card__button--detail {
    width:100%;
    min-width:0;
    min-height:55px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:9px;
    margin:0;
    padding:11px 12px;
    border:1px solid #e00000;
    background:#fff4f4;
    color:#e00000;
    font-size:14px;
    font-weight:700;
    line-height:1.4;
    text-decoration:none;
    overflow-wrap:anywhere;
}
.dc-hhp-project-card__button-arrow { flex:0 0 20px; display:inline-flex; align-items:center; }
.dc-hhp-project-card__button-arrow svg { width:20px; height:20px; display:block; }
.dc-hhp-listing .dc-hhp-project-card a.dc-hhp-project-card__button--detail:hover,
.dc-hhp-listing .dc-hhp-project-card a.dc-hhp-project-card__button--detail:focus-visible,
.elementor .dc-hhp-listing .dc-hhp-project-card a.dc-hhp-project-card__button--detail:hover,
.elementor .dc-hhp-listing .dc-hhp-project-card a.dc-hhp-project-card__button--detail:focus-visible {
    background:#e00000;
    color:#fff;
    border-color:#e00000;
}
.dc-hhp-listing .dc-hhp-project-card__button--detail:focus-visible { outline:2px solid currentColor; outline-offset:3px; }
.dc-hhp-project-card__content { justify-content:center; }

/* Structured overview: only applies after new separate text fields are populated.
   The previous free-text blue card remains unchanged for legacy projects. */
.dc-hhp-overview .dc-hhp-overview__info-card.dc-hhp-overview__info-card--structured {
    padding:0;
    background:#fff;
    color:#30343c;
}
.dc-hhp-overview .dc-hhp-overview__info-card--structured .dc-hhp-overview__info-title {
    color:#d00000;
    margin:0;
    padding:18px 16px 12px;
    font-size:clamp(20px,2.25vw,30px);
    font-weight:700;
    line-height:1.25;
}
.dc-hhp-overview__structured-list { display:block; margin:0; padding:0; }
.dc-hhp-overview__spec-row--structured {
    display:flex;
    align-items:flex-start;
    gap:16px;
    min-width:0;
    padding:14px 16px;
    border-bottom:1px solid #e5e8ee;
}
.dc-hhp-overview__spec-row--structured:last-child { border-bottom:0; }
.dc-hhp-overview__spec-icon { color:#e00000; flex:0 0 23px; display:inline-flex; margin-top:2px; }
.dc-hhp-overview__spec-icon svg { width:23px; height:23px; display:block; }
.dc-hhp-overview__spec-copy { min-width:0; }
.dc-hhp-overview .dc-hhp-overview__spec-row--structured dt {
    display:block;
    color:#333;
    margin:0 0 3px;
    font-size:14px;
    font-weight:600;
    line-height:1.4;
}
.dc-hhp-overview .dc-hhp-overview__spec-row--structured dd {
    display:block;
    margin:0;
    color:#171774;
    font-size:16px;
    font-weight:700;
    line-height:1.4;
    overflow-wrap:anywhere;
}

@media (max-width:1280px) {
    .dc-hhp-project-card__title { margin-top:12px; }
    .dc-hhp-project-card__facts { gap:11px; }
}
@media (max-width:1024px) {
    .dc-hhp-project-card__facts { gap:8px; }
    .dc-hhp-project-card__fact { padding:8px 9px; gap:6px; }
    .dc-hhp-project-card__fact-icon { flex-basis:16px; }
    .dc-hhp-project-card__fact-icon svg { width:16px; height:16px; }
    .dc-hhp-project-card__fact-label { font-size:12px; }
    .dc-hhp-project-card__fact-value { font-size:13px; }
    .dc-hhp-listing .dc-hhp-project-card__button--detail { font-size:13px; }
}
@media (max-width:767px) {
    .dc-hhp-project-card__facts { margin-top:16px; gap:10px; }
    .dc-hhp-project-card__fact { padding:11px; }
    .dc-hhp-project-card__fact-icon { flex-basis:19px; }
    .dc-hhp-project-card__fact-icon svg { width:19px; height:19px; }
    .dc-hhp-project-card__fact-label { font-size:13px; }
    .dc-hhp-project-card__fact-value { font-size:14px; }
    .dc-hhp-project-card__address { font-size:14px; }
    .dc-hhp-project-card__button--detail { width:100%; }
}
@media (max-width:430px) {
    .dc-hhp-project-card__facts { grid-template-columns:minmax(0,1fr); }
    .dc-hhp-project-card__fact { align-items:stretch; }
    .dc-hhp-listing .dc-hhp-project-card__button--detail { min-height:48px; }
}

/* v1.5.5: Elementor Icon Picker in project listing and structured overview. */
.dc-hhp-listing .dc-hhp-project-card__type-icon {
    display:inline-flex; align-items:center; justify-content:center;
    vertical-align:middle; line-height:1; font-size:.68em;
}
.dc-hhp-listing .dc-hhp-project-card__type-icon :is(i,svg,img) { display:block; width:1em; height:1em; font-size:1em; object-fit:contain; }
.dc-hhp-listing .dc-hhp-project-card__address-icon :is(i,img) { display:block; width:18px; height:18px; font-size:18px; object-fit:contain; }
.dc-hhp-listing .dc-hhp-project-card__fact-icon :is(i,img) { display:block; width:19px; height:19px; font-size:19px; object-fit:contain; }
.dc-hhp-listing .dc-hhp-project-card__button-arrow :is(i,img) { display:block; width:20px; height:20px; font-size:20px; object-fit:contain; }
.dc-hhp-overview .dc-hhp-overview__spec-icon :is(i,img) { display:block; width:23px; height:23px; font-size:23px; object-fit:contain; }
.dc-hhp-listing .dc-hhp-project-card__fact-icon .dc-hhp-custom-icon-image,
.dc-hhp-listing .dc-hhp-project-card__address-icon .dc-hhp-custom-icon-image,
.dc-hhp-listing .dc-hhp-project-card__button-arrow .dc-hhp-custom-icon-image,
.dc-hhp-overview .dc-hhp-overview__spec-icon .dc-hhp-custom-icon-image { max-width:100%; max-height:100%; }
@media (max-width:767px) {
    .dc-hhp-listing .dc-hhp-project-card__fact-icon :is(i,img) { width:19px; height:19px; font-size:19px; }
}


/* v1.5.7 — Project Hero: use the chosen high-resolution asset as content media. */
.dc-hhp-hero__media { position:relative; isolation:isolate; }
.dc-hhp-hero__picture { display:block; width:100%; height:100%; }
.dc-hhp-hero__image,
.elementor .dc-hhp-hero img.dc-hhp-hero__image { display:block; width:100%; height:100%; max-width:none; object-fit:cover; }
.dc-hhp-hero__overlay {
    position:absolute; inset:0; z-index:1; pointer-events:none;
    --dc-hhp-hero-overlay-color:#10104a;
    background:linear-gradient(180deg,transparent var(--dc-hhp-hero-overlay-start, 64%),var(--dc-hhp-hero-overlay-color) 100%);
    opacity:.65;
}
.dc-hhp-hero__title-wrap {
    position:absolute; inset:auto 0 0; z-index:2;
    width:100%; padding:36px 24px 48px; pointer-events:none;
}
.dc-hhp-hero__title-inner { max-width:1100px; min-width:0; margin-inline:auto; }
.dc-hhp-hero__title {
    margin:0; color:#fff; font-size:clamp(28px,3.4vw,52px); line-height:1.13;
    font-weight:700; text-transform:uppercase; overflow-wrap:anywhere;
}
@media(max-width:767px) {
    .dc-hhp-hero__title-wrap { padding:16px 16px 24px; }
    .dc-hhp-hero__title { font-size:clamp(26px,7.6vw,36px); }
}

/* v1.5.7 — Related projects inherit the same card structure as the listing.
 * Limit overrides to Related so list/filter/other project widgets remain unchanged. */
.dc-hhp-related .dc-hhp-related-card.dc-hhp-project-card {
    display:flex; grid-template-columns:none; align-items:stretch;
    height:auto;
}
.dc-hhp-related .dc-hhp-related-card__media.dc-hhp-project-card__media {
    position:relative; display:block; width:auto; height:auto;
    flex:0 0 var(--dc-hhp-related-media-width); min-width:0; min-height:0;
}
.dc-hhp-related .dc-hhp-related-card__image.dc-hhp-project-card__image,
.elementor .dc-hhp-related .dc-hhp-related-card img.dc-hhp-related-card__image {
    position:absolute; inset:0; display:block; width:100%; height:100%; min-height:100%; max-width:none;
    object-fit:cover;
}
.dc-hhp-related .dc-hhp-related-card__content.dc-hhp-project-card__content {
    display:flex; flex:1 1 0; justify-content:center; min-width:0; width:auto;
}
.dc-hhp-related .dc-hhp-related-card__title.dc-hhp-project-card__title {
    margin:14px 0 0;
}
.elementor .dc-hhp-related .dc-hhp-related-card__title > a,
.dc-hhp-related .dc-hhp-related-card__title > a {
    color:inherit; font:inherit; letter-spacing:inherit; text-transform:inherit;
    text-decoration:none;
}
.dc-hhp-related .dc-hhp-project-card__type-icon { display:inline-flex; align-items:center; justify-content:center; vertical-align:middle; }
.dc-hhp-related .dc-hhp-project-card__type-icon :is(i,svg,img) { display:block; width:1em; height:1em; object-fit:contain; }
.dc-hhp-related .dc-hhp-project-card__address-icon :is(i,svg,img) { display:block; width:18px; height:18px; object-fit:contain; }
.dc-hhp-related .dc-hhp-project-card__fact-icon :is(i,svg,img) { display:block; width:19px; height:19px; object-fit:contain; }
.dc-hhp-related .dc-hhp-project-card__button-arrow :is(i,svg,img) { display:block; width:20px; height:20px; object-fit:contain; }
.dc-hhp-related .dc-hhp-project-card__facts { grid-template-columns:repeat(2,minmax(0,1fr)); }
.dc-hhp-related .dc-hhp-related-card__button.dc-hhp-project-card__button--detail,
.elementor .dc-hhp-related .dc-hhp-related-card a.dc-hhp-project-card__button--detail {
    display:flex; align-items:center; justify-content:center; gap:9px;
    width:100%; min-width:0; min-height:var(--dc-hhp-related-button-height,55px); padding:11px 12px;
    border:1px solid #e00000;
    background:var(--dc-hhp-related-button-bg,#fff4f4);
    color:var(--dc-hhp-related-button-color,#e00000);
    text-align:center; text-decoration:none; font-weight:700; line-height:1.4;
    overflow-wrap:anywhere;
}
.dc-hhp-related .dc-hhp-related-card__button.dc-hhp-project-card__button--detail:hover,
.dc-hhp-related .dc-hhp-related-card__button.dc-hhp-project-card__button--detail:focus-visible {
    color:var(--dc-hhp-related-button-hover-color,#fff);
    background:var(--dc-hhp-related-button-hover-bg,#e00000);
    border-color:var(--dc-hhp-related-button-hover-bg,#e00000);
}
.dc-hhp-related .dc-hhp-project-card__button-arrow { color:inherit; }
@media(max-width:1024px) {
    .dc-hhp-related .dc-hhp-project-card__facts { gap:9px; }
}
@media(max-width:767px) {
    .dc-hhp-related .dc-hhp-related-card.dc-hhp-project-card { display:block; min-height:0; }
    .dc-hhp-related .dc-hhp-related-card__media.dc-hhp-project-card__media {
        display:block; width:100%; min-height:0; height:260px;
    }
    .dc-hhp-related .dc-hhp-related-card__content.dc-hhp-project-card__content { width:100%; }
    .dc-hhp-related .dc-hhp-project-card__facts { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
}
@media(max-width:430px) {
    .dc-hhp-related .dc-hhp-project-card__facts { grid-template-columns:minmax(0,1fr); }
    .dc-hhp-related .dc-hhp-related-card__media.dc-hhp-project-card__media { height:230px; }
    .dc-hhp-related .dc-hhp-related-card__button.dc-hhp-project-card__button--detail { min-height:48px; }
}
@media(max-width:360px) {
}
@media(prefers-reduced-motion:reduce) {
    .dc-hhp-related .dc-hhp-project-card__image { transition:none; transform:none; }
}

/* v1.5.7 — Project Documents: admin-managed consultation details, no form. */
.dc-hhp-docs__consult { min-width:0; }
.dc-hhp-docs__consult-logo { width:275px; max-width:100%; margin:0 0 16px; }
.dc-hhp-docs__consult-logo img,
.elementor .dc-hhp-docs__consult-logo img { display:block; width:100%; max-width:100%; height:auto; object-fit:contain; }
.dc-hhp-docs__consult-company {
    margin:0 0 18px; color:#d00000; font-size:20px; line-height:1.3;
    font-weight:700; overflow-wrap:anywhere;
}
.dc-hhp-docs__consult-intro { margin:0 0 16px; color:#404040; line-height:1.6; overflow-wrap:anywhere; }
.dc-hhp-docs__consult-intro > :first-child { margin-top:0; }
.dc-hhp-docs__consult-intro > :last-child { margin-bottom:0; }
.dc-hhp-docs__consult-list { display:grid; gap:14px; min-width:0; margin:0; padding:0; color:#404040; }
.dc-hhp-docs__consult-row { display:flex; align-items:flex-start; min-width:0; gap:10px; }
.dc-hhp-docs__consult-icon { flex:0 0 18px; display:inline-flex; align-items:center; justify-content:center; margin-top:2px; color:#34343c; }
.dc-hhp-docs__consult-icon svg { display:block; width:18px; height:18px; }
.dc-hhp-docs__consult-copy { min-width:0; font-size:14px; line-height:1.5; overflow-wrap:anywhere; }
.dc-hhp-docs__consult-copy strong { font-weight:700; margin-right:4px; }
.dc-hhp-docs__consult-copy span { overflow-wrap:anywhere; white-space:normal; }
.dc-hhp-docs__consult-copy a { color:#171774; text-decoration:none; overflow-wrap:anywhere; }
.dc-hhp-docs__consult-copy a:hover,
.dc-hhp-docs__consult-copy a:focus-visible { color:#e00000; text-decoration:underline; }
@media(max-width:767px) {
    .dc-hhp-docs__consult { margin-top:32px; }
    .dc-hhp-docs__consult-company { font-size:19px; }
}

.dc-hhp-docs__consult-icon :is(i,img) { display:block; width:18px; height:18px; max-width:100%; object-fit:contain; font-size:18px; }


/* v1.5.8: Hero image stays on the compositor-free media layer; only title animates. */
.dc-hhp-hero .dc-hhp-hero__media,
.dc-hhp-hero .dc-hhp-hero__picture,
.dc-hhp-hero .dc-hhp-hero__image {
    filter:none;
    backdrop-filter:none;
    transform:none;
    image-rendering:auto;
}
.dc-hhp-hero .dc-hhp-hero__image { max-width:none; }

/* v1.5.8: Scope typography to the actual text nodes, not only the list parent. */
.dc-hhp-docs .dc-hhp-docs__consult-copy,
.dc-hhp-docs .dc-hhp-docs__consult-copy strong,
.dc-hhp-docs .dc-hhp-docs__consult-copy > span,
.dc-hhp-docs .dc-hhp-docs__consult-copy a {
    max-width:100%;
    overflow-wrap:anywhere;
}
