/* DreamCode Thành Vinh 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; }

/* Project Hero – 1920x500 SVG reference: image / overlay / breadcrumb / title.
   The media is a real <img>; long titles increase section height naturally. */
.dc-hhp-hero {
    position:relative;
    isolation:isolate;
    display:flex;
    align-items:flex-end;
    width:100%;
    min-width:0;
    min-height:clamp(400px, 26.041667vw, 500px);
    background:#051a53;
}
.dc-hhp-hero__media,
.dc-hhp-hero__overlay { position:absolute; inset:0; }
.dc-hhp-hero__media { z-index:0; overflow:hidden; }
.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%;
    min-height:100%;
    max-width:none;
    object-fit:cover;
    object-position:center center;
    filter:none;
    backdrop-filter:none;
    transform:none;
    image-rendering:auto;
}
.dc-hhp-hero__overlay {
    z-index:1;
    pointer-events:none;
    --dc-tv-hero-overlay-color:#051a53;
    --dc-tv-hero-overlay-start:42.1096%;
    background:linear-gradient(180deg, rgba(5,26,83,0) var(--dc-tv-hero-overlay-start), var(--dc-tv-hero-overlay-color) 100%);
    opacity:1;
}
@supports (color:rgb(from red r g b / 0)) {
    .dc-hhp-hero__overlay {
        background:linear-gradient(180deg, rgb(from var(--dc-tv-hero-overlay-color) r g b / 0) var(--dc-tv-hero-overlay-start), var(--dc-tv-hero-overlay-color) 100%);
    }
}
.dc-hhp-hero__content {
    position:relative;
    z-index:2;
    width:calc(100% - 48px);
    max-width:1320px;
    min-width:0;
    margin-inline:auto;
    padding:96px 0 32px;
}
.dc-hhp-hero .dc-hhp-hero__breadcrumbs {
    min-width:0;
    margin:0 0 28px;
    color:#fff;
    font-size:18px;
    font-weight:400;
    line-height:1.5;
}
.dc-hhp-hero__crumbs {
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:5px 12px;
    min-width:0;
    margin:0;
    padding:0;
    list-style:none;
}
.dc-hhp-hero__crumb { display:inline-flex; align-items:center; min-width:0; gap:12px; max-width:100%; overflow-wrap:anywhere; }
.dc-hhp-hero__crumb > :last-child { min-width:0; max-width:100%; overflow-wrap:anywhere; }
.dc-hhp-hero__separator { flex:none; opacity:.9; }
.dc-hhp-hero__breadcrumbs a,
.elementor .dc-hhp-hero .dc-hhp-hero__breadcrumbs a {
    color:inherit;
    text-decoration:none;
    background:none;
}
.dc-hhp-hero__breadcrumbs a:hover,
.dc-hhp-hero__breadcrumbs a:focus-visible {
    color:#fff;
    text-decoration:underline;
    text-underline-offset:3px;
}
.dc-hhp-hero__breadcrumbs a:focus-visible { outline:2px solid currentColor; outline-offset:4px; }
.dc-hhp-hero .dc-hhp-hero__title {
    min-width:0;
    max-width:100%;
    margin:0;
    color:#fff;
    font-family:Arial, sans-serif;
    font-size:clamp(38px, 3.073vw, 59px);
    font-weight:700;
    line-height:1.16;
    text-transform:uppercase;
    overflow-wrap:anywhere;
}
@media(max-width:1024px) {
    .dc-hhp-hero { min-height:380px; }
    .dc-hhp-hero__content { width:calc(100% - 60px); padding-top:85px; padding-bottom:36px; }
    .dc-hhp-hero .dc-hhp-hero__title { font-size:clamp(34px, 4.5vw, 46px); }
    .dc-hhp-hero__breadcrumbs a { display:inline-flex; align-items:center; min-height:44px; }
}
@media(max-width:767px) {
    .dc-hhp-hero { min-height:340px; }
    .dc-hhp-hero__content { width:calc(100% - 36px); padding:96px 0 28px; }
    .dc-hhp-hero .dc-hhp-hero__breadcrumbs { font-size:14px; margin-bottom:20px; line-height:1.6; }
    .dc-hhp-hero__crumbs { gap:3px 8px; }
    .dc-hhp-hero__crumb { gap:8px; }
    .dc-hhp-hero .dc-hhp-hero__title { font-size:clamp(27px, 7vw, 36px); line-height:1.18; }
}
@media(max-width:360px) {
    .dc-hhp-hero { min-height:320px; }
    .dc-hhp-hero__content { width:calc(100% - 32px); padding-bottom:24px; }
    .dc-hhp-hero .dc-hhp-hero__title { font-size:27px; }
}

/* 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 — reference: 1320×560 stage, 5 thumbnails, embedded counter. */
.dc-hhp-gallery {
    width:100%; min-width:0; max-width:100%;
    background:transparent; scroll-margin-top:var(--dc-hhp-global-scroll-offset,110px);
    color:#090d78;
}
.dc-hhp-gallery__inner { width:100%; max-width:1320px; min-width:0; margin-inline:auto; }
.dc-hhp-gallery__heading {
    margin:0 0 32px; padding:0;
    color:#090d78;
    font-family:inherit; font-weight:800; font-size:40px; line-height:1.3;
    letter-spacing:.01em; text-transform:uppercase; overflow-wrap:anywhere;
}
.dc-hhp-gallery__stage {
    position:relative; width:100%; aspect-ratio:33/14;
    height:auto; overflow:hidden; isolation:isolate; border-radius:20px;
    background:#e7edf4;
}
.dc-hhp-gallery__slide {
    position:absolute; inset:0; margin:0; z-index:1;
    opacity:0; visibility:hidden; pointer-events:none;
    transition:opacity .36s ease, visibility .36s ease;
}
.dc-hhp-gallery__slide.is-active { z-index:2; opacity:1; visibility:visible; pointer-events:auto; }
.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:3px solid #fff; }
.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__shade {
    position:absolute; z-index:3; inset:0; pointer-events:none;
    background:linear-gradient(180deg,rgba(0,0,0,0) 54%,rgba(0,0,0,.05) 72%,rgba(0,0,0,.68) 100%);
}
.elementor .dc-hhp-gallery button.dc-hhp-gallery__arrow,
.dc-hhp-gallery button.dc-hhp-gallery__arrow {
    appearance:none; -webkit-appearance:none;
    display:inline-flex; align-items:center; justify-content:center;
    position:absolute; top:50%; z-index:5; transform:translateY(-50%);
    width:44px; height:44px; min-width:44px; min-height:44px;
    margin:0; padding:0; border:0; border-radius:50%;
    background:#fff; color:#080d75; cursor:pointer; box-shadow:none;
    transition:background-color .2s ease,color .2s ease,opacity .2s ease;
}
.elementor .dc-hhp-gallery button.dc-hhp-gallery__arrow--prev,
.dc-hhp-gallery button.dc-hhp-gallery__arrow--prev { left:40px; background:#fff; color:#080d75; }
.elementor .dc-hhp-gallery button.dc-hhp-gallery__arrow--next,
.dc-hhp-gallery button.dc-hhp-gallery__arrow--next { right:40px; background:#080d75; color:#fff; }
.elementor .dc-hhp-gallery button.dc-hhp-gallery__arrow--prev:hover,
.elementor .dc-hhp-gallery button.dc-hhp-gallery__arrow--prev:focus-visible,
.dc-hhp-gallery button.dc-hhp-gallery__arrow--prev:hover { background:#080d75; color:#fff; }
.elementor .dc-hhp-gallery button.dc-hhp-gallery__arrow--next:hover,
.elementor .dc-hhp-gallery button.dc-hhp-gallery__arrow--next:focus-visible,
.dc-hhp-gallery button.dc-hhp-gallery__arrow--next:hover { background:#fff; color:#080d75; }
.dc-hhp-gallery__arrow svg { display:block; width:20px; height:20px; fill:none; stroke:currentColor; }
.dc-hhp-gallery__arrow[disabled] { opacity:.42; cursor:default; }
.dc-hhp-gallery__pagination {
    position:absolute; z-index:4; right:52px; bottom:31px;
    display:flex; align-items:center; gap:8px;
    font-family:inherit; font-variant-numeric:tabular-nums;
    line-height:1; color:#fff; pointer-events:none;
}
.dc-hhp-gallery__current { font-weight:800; font-size:24px; letter-spacing:-.04em; }
.dc-hhp-gallery__total { align-self:center; margin-left:0; font-size:12px; opacity:.82; }
.dc-hhp-gallery__progress { display:flex; gap:8px; margin-left:12px; align-items:center; }
.dc-hhp-gallery__progress-bar { display:block; width:28px; height:3px; background:rgba(255,255,255,.95); }
.dc-hhp-gallery__progress-bar.is-active { background:#ee1622; }
.dc-hhp-gallery__sr {
    position:absolute; width:1px; height:1px; padding:0; margin:-1px;
    overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}
.dc-hhp-gallery__thumbs { position:relative; width:100%; min-width:0; margin-top:20px; }
.dc-hhp-gallery__thumbs-viewport {
    width:100%; min-width:0; overflow-x:auto; overflow-y:hidden;
    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:16px; 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 calc((100% - 64px)/5);
    display:block; position:relative; width:calc((100% - 64px)/5);
    height:auto; aspect-ratio:250/118;
    min-width:0; max-width:none; padding:0; margin:0;
    border:2px solid transparent; border-radius:14px;
    overflow:hidden; background:transparent; color:inherit;
    opacity:1; cursor:pointer;
    transition:border-color .2s ease,opacity .2s 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:hover { background:transparent; color:inherit; }
.elementor .dc-hhp-gallery button.dc-hhp-gallery__thumb.is-active,
.dc-hhp-gallery button.dc-hhp-gallery__thumb.is-active { border-color:#090d78; }
.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; object-position:center; border-radius:11px;
}
.dc-hhp-gallery__thumb-number {
    position:absolute; top:8px; right:8px; z-index:1;
    display:inline-flex; align-items:center; justify-content:center;
    width:32px; height:32px; border-radius:50%;
    background:#fff; color:#090d78;
    font-size:13px; font-weight:800; line-height:1; font-variant-numeric:tabular-nums;
    pointer-events:none;
}
.dc-hhp-gallery__thumb.is-active .dc-hhp-gallery__thumb-number { background:#090d78; color:#fff; }
@media (max-width:1024px) {
    .dc-hhp-gallery__heading { font-size:clamp(29px,3.6vw,38px); margin-bottom:24px; }
    .dc-hhp-gallery__stage { aspect-ratio:1.95; }
    .elementor .dc-hhp-gallery button.dc-hhp-gallery__thumb,
    .dc-hhp-gallery button.dc-hhp-gallery__thumb { flex-basis:calc((100% - 42px)/4); width:calc((100% - 42px)/4); }
    .dc-hhp-gallery__thumbs-track { gap:14px; }
}
@media (max-width:767px) {
    .dc-hhp-gallery__heading { font-size:clamp(25px,6vw,32px); line-height:1.3; margin-bottom:20px; }
    .dc-hhp-gallery__stage { aspect-ratio:1.55; border-radius:16px; }
    .elementor .dc-hhp-gallery button.dc-hhp-gallery__arrow--prev,
    .dc-hhp-gallery button.dc-hhp-gallery__arrow--prev { left:12px; }
    .elementor .dc-hhp-gallery button.dc-hhp-gallery__arrow--next,
    .dc-hhp-gallery button.dc-hhp-gallery__arrow--next { right:12px; }
    .dc-hhp-gallery__pagination { right:18px; bottom:18px; gap:6px; }
    .dc-hhp-gallery__current { font-size:19px; }
    .dc-hhp-gallery__total { font-size:11px; }
    .dc-hhp-gallery__progress { margin-left:4px; gap:5px; }
    .dc-hhp-gallery__progress-bar { width:18px; }
    .dc-hhp-gallery__thumbs { margin-top:12px; }
    .dc-hhp-gallery__thumbs-track { gap:12px; }
    .elementor .dc-hhp-gallery button.dc-hhp-gallery__thumb,
    .dc-hhp-gallery button.dc-hhp-gallery__thumb { flex-basis:calc((100% - 24px)/3); width:calc((100% - 24px)/3); border-radius:12px; }
    .dc-hhp-gallery__thumb-number { top:6px; right:6px; width:29px; height:29px; font-size:12px; }
}
@media (max-width:430px) {
    .dc-hhp-gallery__stage { aspect-ratio:1.35; }
    .dc-hhp-gallery__thumbs-track { gap:10px; }
    .elementor .dc-hhp-gallery button.dc-hhp-gallery__thumb,
    .dc-hhp-gallery button.dc-hhp-gallery__thumb { flex-basis:calc((100% - 10px)/2.3); width:calc((100% - 10px)/2.3); }
}
@media (max-width:360px) {
    .dc-hhp-gallery__pagination { right:12px; bottom:14px; }
    .dc-hhp-gallery__progress { gap:4px; }
    .dc-hhp-gallery__progress-bar { width:14px; }
}
@media (prefers-reduced-motion: reduce) {
    .dc-hhp-gallery__slide, .dc-hhp-gallery__thumbs-viewport { transition:none; scroll-behavior:auto; }
}

/* Mixed media in Project Gallery: image slides and on-demand video players. */
.dc-hhp-gallery__video {
    position:relative; width:100%; height:100%; min-width:0; overflow:hidden;
    background:#09102d;
}
.dc-hhp-gallery__video-poster,
.elementor .dc-hhp-gallery img.dc-hhp-gallery__video-poster {
    display:block; width:100%; height:100%; max-width:none; object-fit:cover;
}
.dc-hhp-gallery__video-element,
.dc-hhp-gallery__video iframe {
    position:absolute; inset:0; width:100%; height:100%; border:0;
    display:block; object-fit:contain; background:#0c1020;
}
.dc-hhp-gallery .dc-hhp-gallery__video-play,
.elementor .dc-hhp-gallery .dc-hhp-gallery__video-play {
    position:absolute; z-index:4; left:50%; top:50%; transform:translate(-50%,-50%);
    display:flex; align-items:center; justify-content:center;
    width:76px; height:76px; min-width:48px; min-height:48px;
    padding:0; margin:0; border:2px solid rgba(255,255,255,.95);
    border-radius:50%; color:#fff; background:rgba(8,9,119,.84); text-decoration:none;
    cursor:pointer; transition:background .2s ease,transform .2s ease;
}
.dc-hhp-gallery .dc-hhp-gallery__video-play:hover,
.dc-hhp-gallery .dc-hhp-gallery__video-play:focus-visible { color:#fff; background:#080977; }
.dc-hhp-gallery .dc-hhp-gallery__video-play:focus-visible { outline:3px solid #fff; outline-offset:4px; }
.dc-hhp-gallery__video-play svg { display:block; width:28px; height:28px; margin-left:3px; }
.dc-hhp-gallery__video.is-playing .dc-hhp-gallery__video-play,
.dc-hhp-gallery__video.is-playing .dc-hhp-gallery__video-poster { display:none; }
.dc-hhp-gallery__thumb-play {
    position:absolute; left:50%; top:50%; z-index:2; transform:translate(-50%,-50%);
    display:grid; place-items:center; width:40px; height:40px; border-radius:50%;
    background:rgba(8,9,119,.85); border:1px solid rgba(255,255,255,.9); color:#fff;
}
.dc-hhp-gallery__thumb-play svg { width:18px; height:18px; margin-left:2px; }
.dc-hhp-gallery button.dc-hhp-gallery__thumb--video,
.elementor .dc-hhp-gallery button.dc-hhp-gallery__thumb--video { background:linear-gradient(120deg,#090d45,#1521a4); }
.dc-hhp-gallery__inner.is-video-active .dc-hhp-gallery__shade { display:none; }
.dc-hhp-gallery__inner.is-video-active .dc-hhp-gallery__pagination { bottom:auto; top:20px; right:20px; }
@media (max-width:767px) {
    .dc-hhp-gallery .dc-hhp-gallery__video-play,
    .elementor .dc-hhp-gallery .dc-hhp-gallery__video-play { width:60px; height:60px; }
    .dc-hhp-gallery__thumb-play { width:32px; height:32px; }
    .dc-hhp-gallery__thumb-play svg { width:14px; height:14px; }
}
@media (prefers-reduced-motion: reduce) {
    .dc-hhp-gallery .dc-hhp-gallery__video-play { transition:none; }
}

/* 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; }
.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; }
}

/* 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-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-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-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-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-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-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-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;
    align-items:flex-start;
    gap:8px;
    min-width:0;
    padding:10px 12px;
    border:1px solid #d7dee8;
    background:#f3f6fa;
}
.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-text { display:flex; flex-direction:column; min-width:0; gap:5px; }
.dc-hhp-project-card__fact-label { color:#31343a; font-weight:600; font-size:13px; line-height:1.35; overflow-wrap:anywhere; }
.dc-hhp-project-card__fact-value { color:#171774; font-weight:700; font-size:14px; line-height:1.4; overflow-wrap:anywhere; }
/* 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:max-content;
    min-height:78px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:9px;
    margin:0;
    padding:11px 12px;
    border:1px solid #C8010A;
    background:#FDF2F3;
    color:#C8010A;
    font-size:14px;
    font-weight:700;
    line-height:1.4;
    text-decoration:none;
    border-radius:16px;
    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:#C8010A;
    color:#fff;
    border-color:#C8010A;
}
.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:center; }
    .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 — 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,78px); padding:11px 12px;
    border:1px solid #C8010A;
    background:var(--dc-hhp-related-button-bg,#FDF2F3);
    color:var(--dc-hhp-related-button-color,#C8010A);
    text-align:center; text-decoration:none; font-weight:700; line-height:1.4;
    border-radius:16px;
    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,#C8010A);
    border-color:var(--dc-hhp-related-button-hover-bg,#C8010A);
}
.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: 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;
}

/* =============================================================
 * v1.6.0 — SVG-matched project distribution (mosaic + info).
 * No changes to the original .dc-hhp-distribution__grid layout.
 * Two natural background states: image with backdrop blur and tint, or solid color.
 * ============================================================= */
.dc-hhp-distribution.dc-hhp-distribution--mosaic {
    --dc-hhp-mosaic-accent:#c8010a;
    --dc-hhp-mosaic-background-blur:28.4px;
    isolation:isolate;
    position:relative;
    width:100%;
    min-width:0;
    padding:100px 24px 96px;
    background-color:#fff;
    color:#0a205a;
}
.dc-hhp-distribution--mosaic .dc-hhp-distribution__background,
.dc-hhp-distribution--mosaic .dc-hhp-distribution__background-tint {
    position:absolute;
    inset:0;
    display:block;
    pointer-events:none;
}
.dc-hhp-distribution--mosaic .dc-hhp-distribution__background {
    z-index:-1;
    overflow:hidden;
}
.dc-hhp-distribution--mosaic .dc-hhp-distribution__background-photo,
.elementor .dc-hhp-distribution--mosaic img.dc-hhp-distribution__background-photo {
    display:block;
    width:100%;
    height:100%;
    max-width:none;
    object-fit:cover;
    object-position:center;
}
/* Figma "Background blur: 28.4" applies to the semi-transparent white backdrop
 * ABOVE the background photo, not to the whole section. The content is a separate
 * stacking layer and remains sharp. In solid mode this node is not rendered. */
.dc-hhp-distribution--mosaic .dc-hhp-distribution__background-tint {
    background-color:rgba(255,255,255,.8);
    -webkit-backdrop-filter:blur(var(--dc-hhp-mosaic-background-blur,28.4px));
    backdrop-filter:blur(var(--dc-hhp-mosaic-background-blur,28.4px));
}
/* Older browsers without backdrop-filter: blur only the photo, never the text. */
@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))) {
    .dc-hhp-distribution--mosaic.dc-hhp-distribution--with-image .dc-hhp-distribution__background-photo {
        filter:blur(var(--dc-hhp-mosaic-background-blur,28.4px));
    }
}
.dc-hhp-distribution--mosaic .dc-hhp-distribution__inner {
    position:relative;
    z-index:1;
    width:100%;
    max-width:1320px;
    min-width:0;
    margin:0 auto;
}
.dc-hhp-distribution--mosaic .dc-hhp-distribution__header {
    display:block;
    min-width:0;
    margin:0 0 48px;
}
.dc-hhp-distribution--mosaic.dc-hhp-distribution--with-image .dc-hhp-distribution__header {
    margin-bottom:56px;
}
.dc-hhp-distribution--mosaic .dc-hhp-distribution__kicker {
    display:flex;
    align-items:center;
    gap:7px;
    min-width:0;
    margin:0 0 28px;
    color:var(--dc-hhp-mosaic-accent);
    font-size:18px;
    line-height:1.25;
    font-weight:500;
    overflow-wrap:anywhere;
}
.dc-hhp-distribution--mosaic .dc-hhp-distribution__kicker span {
    font-size:21px;
    line-height:1;
}
.dc-hhp-distribution--mosaic .dc-hhp-distribution__title {
    margin:0;
    color:#0a205a;
    font-family:Arial,Helvetica,sans-serif;
    font-size:clamp(30px,2.15vw,40px);
    line-height:1.18;
    font-weight:750;
    letter-spacing:.005em;
    text-transform:uppercase;
    overflow-wrap:anywhere;
}
.dc-hhp-distribution--mosaic .dc-hhp-distribution__mosaic {
    display:grid;
    grid-template-columns:minmax(0,.935fr) minmax(0,1.015fr);
    gap:48px;
    align-items:stretch;
    width:100%;
    min-width:0;
}
.dc-hhp-distribution--mosaic .dc-hhp-distribution__mosaic--no-media {
    grid-template-columns:minmax(0,1fr);
}
.dc-hhp-distribution--mosaic .dc-hhp-distribution__media-grid {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    grid-template-rows:min-content min-content;
    align-content:start;
    gap:16px;
    min-width:0;
}
.dc-hhp-distribution--mosaic .dc-hhp-distribution__photo {
    position:relative;
    display:block;
    min-width:0;
    aspect-ratio:1.55;
    overflow:hidden;
    border-radius:17px;
    background:#e7edf4;
}
.dc-hhp-distribution--mosaic .dc-hhp-distribution__photo--lead {
    grid-column:1 / -1;
    aspect-ratio:2.68;
}
.dc-hhp-distribution--mosaic .dc-hhp-distribution__media-grid--2 .dc-hhp-distribution__photo:not(.dc-hhp-distribution__photo--lead) {
    grid-column:1 / -1;
    aspect-ratio:2.68;
}
.dc-hhp-distribution--mosaic .dc-hhp-distribution__project-photo,
.elementor .dc-hhp-distribution--mosaic img.dc-hhp-distribution__project-photo {
    position:absolute;
    inset:0;
    display:block;
    width:100%;
    max-width:none;
    height:100%;
    margin:0;
    object-fit:cover;
    object-position:center;
    transition:transform .48s cubic-bezier(.21,.67,.2,1);
}
@media (hover:hover) and (pointer:fine) {
    .dc-hhp-distribution--mosaic .dc-hhp-distribution__photo:hover .dc-hhp-distribution__project-photo {
        transform:scale(1.045);
    }
}
.dc-hhp-distribution--mosaic .dc-hhp-distribution__detail-card {
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    gap:22px;
    min-width:0;
    max-width:100%;
    padding:30px 32px;
    border:1px solid #e7eaf0;
    border-radius:30px;
    background-color:#fff;
}
.dc-hhp-distribution--mosaic.dc-hhp-distribution--with-image .dc-hhp-distribution__detail-card {
    border-color:transparent;
}
.dc-hhp-distribution--mosaic .dc-hhp-distribution__detail-top {
    min-width:0;
    padding-bottom:22px;
    border-bottom:1px solid #e7eaf0;
}
.dc-hhp-distribution--mosaic .dc-hhp-distribution__project-type {
    display:flex;
    align-items:baseline;
    gap:7px;
    min-width:0;
    margin:0 0 20px;
    color:var(--dc-hhp-mosaic-accent);
    font-size:15px;
    line-height:1.45;
    font-weight:600;
    overflow-wrap:anywhere;
}
.dc-hhp-distribution--mosaic .dc-hhp-distribution__project-type > span {
    flex:0 0 auto;
    font-size:15px;
}
.dc-hhp-distribution--mosaic .dc-hhp-distribution__project-title {
    min-width:0;
    margin:0;
    color:#0a205a;
    font-size:clamp(25px,2vw,33px);
    font-weight:750;
    line-height:1.25;
    overflow-wrap:anywhere;
}
.dc-hhp-distribution--mosaic .dc-hhp-distribution__project-location {
    display:flex;
    align-items:center;
    gap:7px;
    min-width:0;
    margin:18px 0 0;
    color:var(--dc-hhp-mosaic-accent);
    font-size:16px;
    line-height:1.5;
    overflow-wrap:anywhere;
}
.dc-hhp-distribution--mosaic .dc-hhp-distribution__project-location > span:last-child {
    min-width:0;
    overflow-wrap:anywhere;
}
.dc-hhp-distribution--mosaic .dc-hhp-distribution__detail-bottom {
    display:grid;
    /* One intrinsic minimum per column: the widest data cell sets its track. */
    grid-template-columns:repeat(2,minmax(max-content,auto));
    gap:16px;
    align-items:stretch;
    width:100%;
    max-width:100%;
    min-width:0;
    overflow-x:auto;
    overflow-y:hidden;
    overscroll-behavior-x:contain;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:thin;
}
.dc-hhp-distribution--mosaic .dc-hhp-distribution__info-box {
    display:flex;
    align-items:flex-start;
    gap:9px;
    min-width:0;
    min-height:83px;
    padding:13px 12px;
    border:1px solid #e5e8fe;
    border-radius:13px;
    background-color:#f7f8fd;
}
.dc-hhp-distribution--mosaic .dc-hhp-distribution__info-copy {
    display:flex;
    flex-direction:column;
    gap:7px;
    min-width:0;
    flex:1 1 0;
    overflow-wrap:anywhere;
}
.dc-hhp-distribution--mosaic .dc-hhp-distribution__info-label {
    color:#222;
    font-size:13px;
    font-weight:450;
    line-height:1.25;
    overflow-wrap:anywhere;
}
.dc-hhp-distribution--mosaic .dc-hhp-distribution__info-value {
    color:#0a205a;
    font-size:13.5px;
    line-height:1.32;
    font-weight:750;
    overflow-wrap:anywhere;
}
.dc-hhp-distribution--mosaic .dc-hhp-distribution__icon {
    display:inline-flex;
    flex:0 0 18px;
    align-items:center;
    justify-content:center;
    width:18px;
    height:18px;
    min-width:18px;
    min-height:18px;
    color:var(--dc-hhp-mosaic-accent);
    line-height:1;
    vertical-align:middle;
}
.dc-hhp-distribution--mosaic .dc-hhp-distribution__icon i,
.dc-hhp-distribution--mosaic .dc-hhp-distribution__icon svg,
.elementor .dc-hhp-distribution--mosaic .dc-hhp-distribution__icon img {
    display:block;
    width:100%;
    max-width:100%;
    height:100%;
    object-fit:contain;
    font-size:16px;
}
.dc-hhp-distribution--mosaic .dc-hhp-distribution__icon i {
    display:flex;
    align-items:center;
    justify-content:center;
}
.elementor .dc-hhp-distribution--mosaic a.dc-hhp-distribution__detail-cta,
.dc-hhp-distribution--mosaic a.dc-hhp-distribution__detail-cta {
    display:flex;
    align-items:center;
    justify-content:center;
    gap:11px;
    min-width:0;
    min-height:83px;
    padding:12px 16px;
    border:1px solid var(--dc-hhp-mosaic-accent);
    border-radius:13px;
    background-color:#fdf2f3;
    color:var(--dc-hhp-mosaic-accent);
    font-size:14px;
    line-height:1.3;
    font-weight:700;
    text-align:center;
    text-decoration:none;
    overflow-wrap:anywhere;
    transition:background-color .26s ease,color .26s ease,border-color .26s ease,transform .26s ease;
}
.dc-hhp-distribution--mosaic a.dc-hhp-distribution__detail-cta > span:first-child {
    min-width:0;
    overflow-wrap:anywhere;
}
.dc-hhp-distribution--mosaic a.dc-hhp-distribution__detail-cta .dc-hhp-distribution__icon {
    color:inherit;
}
.elementor .dc-hhp-distribution--mosaic a.dc-hhp-distribution__detail-cta:hover,
.elementor .dc-hhp-distribution--mosaic a.dc-hhp-distribution__detail-cta:focus-visible,
.dc-hhp-distribution--mosaic a.dc-hhp-distribution__detail-cta:hover,
.dc-hhp-distribution--mosaic a.dc-hhp-distribution__detail-cta:focus-visible {
    background-color:var(--dc-hhp-mosaic-accent);
    color:#fff;
    border-color:var(--dc-hhp-mosaic-accent);
    text-decoration:none;
}
.dc-hhp-distribution--mosaic a.dc-hhp-distribution__detail-cta:focus-visible {
    outline:2px solid #0a205a;
    outline-offset:2px;
}
/* v1.6.3 - Match Frame (6).svg: two independently selectable CTA icons.
 * The two layers occupy one fixed-width slot so text/arrow do not jump.
 * Explicitly scoped to the new mosaic CTA to resist Elementor global buttons. */
.dc-hhp-distribution--mosaic a.dc-hhp-distribution__detail-cta {
    background-image:none;
    box-shadow:none;
    -webkit-appearance:none;
    appearance:none;
    max-width:100%;
}
.dc-hhp-distribution--mosaic a.dc-hhp-distribution__detail-cta .dc-hhp-distribution__cta-label {
    min-width:0;
    max-width:100%;
    overflow-wrap:anywhere;
}
.dc-hhp-distribution--mosaic .dc-hhp-distribution__cta-icon-stack {
    --dc-tv-cta-icon-size:18px;
    --dc-tv-cta-slide:5px;
    display:inline-grid;
    flex:0 0 var(--dc-tv-cta-icon-size);
    place-items:center;
    width:var(--dc-tv-cta-icon-size);
    height:var(--dc-tv-cta-icon-size);
    min-width:0;
    line-height:1;
    position:relative;
}
.dc-hhp-distribution--mosaic .dc-hhp-distribution__cta-icon-state {
    position:relative;
    grid-area:1 / 1;
    display:grid;
    place-items:center;
    width:100%;
    height:100%;
    min-width:0;
    color:inherit;
    transition:opacity .28s ease,transform .28s cubic-bezier(.21,.67,.2,1);
}
.dc-hhp-distribution--mosaic .dc-hhp-distribution__cta-icon-state--normal {
    opacity:1;
    transform:translateX(0);
}
.dc-hhp-distribution--mosaic .dc-hhp-distribution__cta-icon-state--hover {
    opacity:0;
    transform:translateX(calc(-1 * var(--dc-tv-cta-slide)));
    pointer-events:none;
}
.dc-hhp-distribution--mosaic .dc-hhp-distribution__cta-icon-state .dc-hhp-distribution__icon {
    display:grid;
    place-items:center;
    flex:none;
    width:100%;
    height:100%;
    min-width:0;
    min-height:0;
    color:inherit;
}
.dc-hhp-distribution--mosaic .dc-hhp-distribution__cta-icon-state .dc-hhp-distribution__icon svg,
.dc-hhp-distribution--mosaic .dc-hhp-distribution__cta-icon-state .dc-hhp-distribution__icon i,
.elementor .dc-hhp-distribution--mosaic .dc-hhp-distribution__cta-icon-state .dc-hhp-distribution__icon img {
    display:block;
    width:100%;
    height:100%;
    font-size:var(--dc-tv-cta-icon-size);
    max-width:100%;
    object-fit:contain;
}
.dc-hhp-distribution--mosaic .dc-hhp-distribution__cta-icon-state .dc-hhp-distribution__icon i {
    display:grid;
    place-items:center;
}
.dc-hhp-distribution--mosaic a.dc-hhp-distribution__detail-cta:hover .dc-hhp-distribution__cta-icon-state--normal,
.dc-hhp-distribution--mosaic a.dc-hhp-distribution__detail-cta:focus-visible .dc-hhp-distribution__cta-icon-state--normal {
    opacity:0;
    transform:translateX(var(--dc-tv-cta-slide));
}
.dc-hhp-distribution--mosaic a.dc-hhp-distribution__detail-cta:hover .dc-hhp-distribution__cta-icon-state--hover,
.dc-hhp-distribution--mosaic a.dc-hhp-distribution__detail-cta:focus-visible .dc-hhp-distribution__cta-icon-state--hover {
    opacity:1;
    transform:translateX(0);
}
.dc-hhp-distribution--mosaic .dc-hhp-distribution__empty {
    min-width:0;
    margin:0;
    overflow-wrap:anywhere;
}
@media (max-width:1280px) {
    .dc-hhp-distribution.dc-hhp-distribution--mosaic { padding-block:74px; }
    .dc-hhp-distribution--mosaic .dc-hhp-distribution__mosaic { column-gap:28px; }
    .dc-hhp-distribution--mosaic .dc-hhp-distribution__detail-card { padding:24px; border-radius:24px; }
    .dc-hhp-distribution--mosaic .dc-hhp-distribution__detail-bottom { gap:12px; }
    .dc-hhp-distribution--mosaic .dc-hhp-distribution__info-box { padding:11px; }
    .dc-hhp-distribution--mosaic .dc-hhp-distribution__project-title { font-size:clamp(22px,2.15vw,30px); }
}
@media (max-width:1024px) {
    .dc-hhp-distribution--mosaic .dc-hhp-distribution__mosaic { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:22px; }
    .dc-hhp-distribution--mosaic .dc-hhp-distribution__media-grid { gap:12px; }
    .dc-hhp-distribution--mosaic .dc-hhp-distribution__detail-card { padding:20px; }
    .dc-hhp-distribution--mosaic .dc-hhp-distribution__detail-bottom { gap:10px; }
    .dc-hhp-distribution--mosaic .dc-hhp-distribution__info-box { min-height:72px; }
    .dc-hhp-distribution--mosaic .dc-hhp-distribution__project-type { margin-bottom:10px; }
    .dc-hhp-distribution--mosaic .dc-hhp-distribution__project-location { margin-top:12px; }
}
@media (max-width:850px) {
    .dc-hhp-distribution.dc-hhp-distribution--mosaic { padding:58px 24px; }
    .dc-hhp-distribution--mosaic .dc-hhp-distribution__mosaic { grid-template-columns:minmax(0,1fr); row-gap:22px; }
    .dc-hhp-distribution--mosaic .dc-hhp-distribution__detail-card { padding:24px; }
    .dc-hhp-distribution--mosaic .dc-hhp-distribution__header,
    .dc-hhp-distribution--mosaic.dc-hhp-distribution--with-image .dc-hhp-distribution__header { margin-bottom:30px; }
    .dc-hhp-distribution--mosaic .dc-hhp-distribution__detail-bottom { gap:12px; }
}
@media (max-width:767px) {
    .dc-hhp-distribution.dc-hhp-distribution--mosaic { padding:40px 16px 44px; }
    .dc-hhp-distribution--mosaic .dc-hhp-distribution__title { font-size:clamp(24px,6vw,34px); line-height:1.22; }
    .dc-hhp-distribution--mosaic .dc-hhp-distribution__kicker { margin-bottom:14px; font-size:14px; }
    .dc-hhp-distribution--mosaic .dc-hhp-distribution__header,
    .dc-hhp-distribution--mosaic.dc-hhp-distribution--with-image .dc-hhp-distribution__header { margin-bottom:24px; }
    .dc-hhp-distribution--mosaic .dc-hhp-distribution__project-title { font-size:clamp(21px,5.7vw,28px); }
    .dc-hhp-distribution--mosaic .dc-hhp-distribution__photo { border-radius:13px; }
    .dc-hhp-distribution--mosaic .dc-hhp-distribution__detail-card { padding:22px 20px; border-radius:19px; }
    .dc-hhp-distribution--mosaic .dc-hhp-distribution__project-location { font-size:14px; }
    .dc-hhp-distribution--mosaic .dc-hhp-distribution__info-box { min-height:72px; }
    .elementor .dc-hhp-distribution--mosaic a.dc-hhp-distribution__detail-cta,
    .dc-hhp-distribution--mosaic a.dc-hhp-distribution__detail-cta { min-height:72px; }
}
@media (max-width:390px) {
    .dc-hhp-distribution--mosaic .dc-hhp-distribution__detail-bottom { gap:9px; }
    .dc-hhp-distribution--mosaic .dc-hhp-distribution__info-box { padding:10px 8px; gap:6px; }
    .dc-hhp-distribution--mosaic .dc-hhp-distribution__info-label { font-size:12px; }
    .dc-hhp-distribution--mosaic .dc-hhp-distribution__info-value { font-size:12.5px; }
    .dc-hhp-distribution--mosaic .dc-hhp-distribution__icon { flex-basis:16px; width:16px; min-width:16px; height:16px; min-height:16px; }
    .elementor .dc-hhp-distribution--mosaic a.dc-hhp-distribution__detail-cta,
    .dc-hhp-distribution--mosaic a.dc-hhp-distribution__detail-cta { font-size:12.5px; padding:9px; gap:5px; }
}
@media (max-width:350px) {
    .dc-hhp-distribution--mosaic .dc-hhp-distribution__detail-bottom { grid-template-columns:minmax(0,1fr); }
    .dc-hhp-distribution--mosaic .dc-hhp-distribution__info-box { min-height:56px; }
    .elementor .dc-hhp-distribution--mosaic a.dc-hhp-distribution__detail-cta,
    .dc-hhp-distribution--mosaic a.dc-hhp-distribution__detail-cta { min-height:56px; }
}
@media (prefers-reduced-motion:reduce) {
    .dc-hhp-distribution--mosaic .dc-hhp-distribution__project-photo,
    .dc-hhp-distribution--mosaic a.dc-hhp-distribution__detail-cta { transition:none; transform:none; }
    .dc-hhp-distribution--mosaic .dc-hhp-distribution__cta-icon-state { transition:none; }
}


/* v1.6.4 — Card text aligns to the icon's left edge (Frame reference).
 * Icon sizing uses variables on the current Elementor widget instance, including
 * across the mobile breakpoint; the CTA stack keeps its own pre-existing control. */
.dc-hhp-distribution--mosaic .dc-hhp-distribution__info-box {
    display:flex;
    flex-direction:column;
    align-items:stretch;
    justify-content:center;
    gap:6px;
    min-width:0;
}
.dc-hhp-distribution--mosaic .dc-hhp-distribution__info-heading {
    display:flex;
    align-items:center;
    gap:8px;
    min-width:0;
    max-width:100%;
}
.dc-hhp-distribution--mosaic .dc-hhp-distribution__info-heading .dc-hhp-distribution__icon {
    flex:0 0 var(--dc-tv-mosaic-item-icon-size,var(--dc-tv-mosaic-info-icon-size,18px));
    width:var(--dc-tv-mosaic-item-icon-size,var(--dc-tv-mosaic-info-icon-size,18px));
    height:var(--dc-tv-mosaic-item-icon-size,var(--dc-tv-mosaic-info-icon-size,18px));
    min-width:0;
    min-height:0;
}
.dc-hhp-distribution--mosaic .dc-hhp-distribution__info-box--owner {
    --dc-tv-mosaic-item-icon-size:var(--dc-tv-mosaic-owner-icon-size,var(--dc-tv-mosaic-info-icon-size,18px));
}
.dc-hhp-distribution--mosaic .dc-hhp-distribution__info-box--scale {
    --dc-tv-mosaic-item-icon-size:var(--dc-tv-mosaic-scale-icon-size,var(--dc-tv-mosaic-info-icon-size,18px));
}
.dc-hhp-distribution--mosaic .dc-hhp-distribution__info-box--status {
    --dc-tv-mosaic-item-icon-size:var(--dc-tv-mosaic-status-icon-size,var(--dc-tv-mosaic-info-icon-size,18px));
}
.dc-hhp-distribution--mosaic .dc-hhp-distribution__info-label {
    min-width:0;
}
.dc-hhp-distribution--mosaic .dc-hhp-distribution__info-box > .dc-hhp-distribution__info-value {
    display:block;
    width:100%;
    min-width:0;
    margin:0;
    text-align:left;
}
.dc-hhp-distribution--mosaic .dc-hhp-distribution__project-location > .dc-hhp-distribution__icon {
    flex:0 0 var(--dc-tv-mosaic-location-icon-size,18px);
    width:var(--dc-tv-mosaic-location-icon-size,18px);
    height:var(--dc-tv-mosaic-location-icon-size,18px);
    min-width:0;
    min-height:0;
}
/* WordPress themes and Elementor image rules must not blur/mask mosaic photos.
 * The Figma backdrop-filter belongs to the separate background-tint only. */
.dc-hhp-distribution--mosaic .dc-hhp-distribution__project-photo,
.elementor .dc-hhp-distribution--mosaic img.dc-hhp-distribution__project-photo {
    filter:none;
    -webkit-filter:none;
    backdrop-filter:none;
    opacity:1;
    image-rendering:auto;
}
.dc-hhp-distribution--mosaic a.dc-hhp-distribution__photo {
    cursor:zoom-in;
    text-decoration:none;
    -webkit-tap-highlight-color:transparent;
}
.dc-hhp-distribution--mosaic a.dc-hhp-distribution__photo:focus-visible {
    outline:3px solid var(--dc-hhp-mosaic-accent,#c8010a);
    outline-offset:3px;
}
.dc-hhp-distribution--mosaic .dc-hhp-distribution__info-heading .dc-hhp-distribution__icon i {
    font-size:var(--dc-tv-mosaic-item-icon-size,var(--dc-tv-mosaic-info-icon-size,18px));
}
.dc-hhp-distribution--mosaic .dc-hhp-distribution__project-location > .dc-hhp-distribution__icon i {
    font-size:var(--dc-tv-mosaic-location-icon-size,18px);
}
/* v1.6.5 — Thành Vinh project listing. Only the opt-in/default new design is affected.
   The legacy card layout and all other project widgets retain their existing rules. */
.dc-hhp-listing--tv {
    background:transparent;
    color:#071b50;
}
:where(.dc-hhp-listing--tv) .dc-hhp-listing__inner { max-width:1080px; }
:where(.dc-hhp-listing--tv) .dc-hhp-listing__heading { margin-bottom:24px; }
:where(.dc-hhp-listing--tv) .dc-hhp-listing__eyebrow::before { width:7px; height:7px; border-radius:50%; }
:where(.dc-hhp-listing--tv) .dc-hhp-listing__title {
    font-family:inherit;
    font-size:34px;
    line-height:1.2;
    letter-spacing:0;
    font-weight:750;
    color:#071b50;
    text-transform:uppercase;
}
:where(.dc-hhp-listing--tv) .dc-hhp-listing__toolbar {
    margin:0 0 26px;
    gap:16px;
}
:where(.dc-hhp-listing--tv) .dc-hhp-listing__filters { gap:10px; }
:where(.dc-hhp-listing--tv) .dc-hhp-listing__filter-link {
    min-height:40px;
    padding:10px 20px;
    border:1px solid var(--dc-tv-tab-border,#e4e8f1);
    border-radius:999px;
    background:#fff;
    color:var(--dc-tv-tab-color,#071b50);
    font-size:14px;
    font-weight:600;
    line-height:1.35;
    text-transform:none;
    box-shadow:0 1px 2px rgba(8,20,64,.04);
    transition:background-color .22s ease,color .22s ease,border-color .22s ease,box-shadow .22s ease;
}
:where(.dc-hhp-listing--tv) .dc-hhp-listing__filter-link:is(.is-active,:hover,:focus-visible) {
    background:var(--dc-tv-tab-hover-bg,#141082);
    border-color:var(--dc-tv-tab-hover-bg,#141082);
    color:var(--dc-tv-tab-hover-color,#fff);
    box-shadow:0 2px 6px rgba(20,16,130,.08);
}
.elementor :where(.dc-hhp-listing--tv) .dc-hhp-listing__filter-link,
:where(.dc-hhp-listing--tv) .dc-hhp-listing__filter-link { color:var(--dc-tv-tab-color,#071b50); }
.elementor :where(.dc-hhp-listing--tv) .dc-hhp-listing__filter-link:is(.is-active,:hover,:focus-visible),
:where(.dc-hhp-listing--tv) .dc-hhp-listing__filter-link:is(.is-active,:hover,:focus-visible) {
    color:var(--dc-tv-tab-hover-color,#fff);
}
.elementor :where(.dc-hhp-listing--tv) .dc-hhp-listing__filter-link.is-active,
:where(.dc-hhp-listing--tv) .dc-hhp-listing__filter-link.is-active {
    background:var(--dc-tv-tab-active-bg,#141082);
    border-color:var(--dc-tv-tab-active-bg,#141082);
    color:var(--dc-tv-tab-active-color,#fff);
}
:where(.dc-hhp-listing--tv) .dc-hhp-listing__grid { gap:52px; }
.dc-hhp-listing--tv .dc-hhp-project-card {
    display:grid;
    grid-template-columns:minmax(0,var(--dc-tv-image-width,48%)) minmax(0,1fr);
    gap:var(--dc-tv-column-gap,38px);
    align-items:stretch;
    width:100%;
    min-height:360px;
    min-width:0;
    overflow:visible;
    background:transparent;
    border:0;
    box-shadow:none;
}
:where(.dc-hhp-listing--tv) .dc-hhp-project-card__media {
    display:block;
    position:relative;
    width:100%;
    min-width:0;
    height:auto;
    min-height:var(--dc-tv-image-min-height,360px);
    flex:none;
    align-self:stretch;
    border-radius:var(--dc-tv-image-radius,24px);
    overflow:hidden;
    background:#edf1f7;
    isolation:isolate;
}
:where(.dc-hhp-listing--tv) .dc-hhp-project-card__image,
.elementor .dc-hhp-listing--tv .dc-hhp-project-card img.dc-hhp-project-card__image {
    position:absolute;
    inset:0;
    display:block;
    width:100%;
    height:100%;
    max-width:none;
    min-height:0;
    object-fit:cover;
    object-position:center;
    transform:none;
    filter:none;
    transition:none;
}
.dc-hhp-listing--tv .dc-hhp-project-card:hover .dc-hhp-project-card__image { transform:none; }
:where(.dc-hhp-listing--tv) .dc-hhp-project-card__content {
    display:flex;
    min-width:0;
    width:100%;
    flex-direction:column;
    justify-content:center;
    flex:none;
    padding:26px;
    border:1px solid var(--dc-tv-content-border,#f0f1f5);
    border-radius:var(--dc-tv-content-radius,24px);
    background:#fff;
}
:where(.dc-hhp-listing--tv) .dc-hhp-project-card__type {
    display:flex;
    align-items:center;
    gap:5px;
    font-size:15px;
    line-height:1.4;
    font-weight:500;
    color:#df0000;
}
:where(.dc-hhp-listing--tv) .dc-hhp-project-card__type > span { vertical-align:baseline; }
:where(.dc-hhp-listing--tv) .dc-hhp-project-card__type-icon { flex:0 0 auto; font-size:9px; }
:where(.dc-hhp-listing--tv) .dc-hhp-project-card__title {
    margin:21px 0 0;
    font-family:inherit;
    font-size:26px;
    line-height:1.3;
    letter-spacing:0;
    font-weight:700;
    color:#071b50;
    text-transform:none;
}
:where(.dc-hhp-listing--tv) .dc-hhp-project-card__address {
    align-items:center;
    margin:22px 0 0;
    gap:8px;
    padding-bottom:18px;
    border-bottom:1px solid #e7e9ef;
    color:#e00000;
    font-size:15px;
    line-height:1.45;
}
:where(.dc-hhp-listing--tv) .dc-hhp-project-card__address-icon { flex:0 0 16px; }
:where(.dc-hhp-listing--tv) .dc-hhp-project-card__address-icon :is(i,svg,img) {
    display:block;
    width:16px;
    height:16px;
    max-width:100%;
    object-fit:contain;
}
:where(.dc-hhp-listing--tv) .dc-hhp-project-card__facts {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    margin-top:20px;
    gap:12px;
    align-items:stretch;
    min-width:0;
}
:where(.dc-hhp-listing--tv) .dc-hhp-project-card__fact {
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:5px;
    min-height:68px;
    min-width:0;
    padding:12px;
    border:1px solid #e2e7f6;
    border-radius:12px;
    background:#f7f8fe;
}
:where(.dc-hhp-listing--tv) .dc-hhp-project-card__fact-heading {
    display:flex;
    align-items:center;
    gap:6px;
    min-width:0;
}
:where(.dc-hhp-listing--tv) .dc-hhp-project-card__fact-icon {
    display:inline-flex;
    flex:0 0 17px;
    align-items:center;
    justify-content:center;
    margin:0;
    line-height:1;
}
:where(.dc-hhp-listing--tv) .dc-hhp-project-card__fact-icon :is(i,svg,img) {
    width:17px;
    height:17px;
    max-width:100%;
    display:block;
    object-fit:contain;
}
:where(.dc-hhp-listing--tv) .dc-hhp-project-card__fact-label {
    min-width:0;
    color:#262936;
    font-size:12px;
    font-weight:400;
    line-height:1.35;
}
:where(.dc-hhp-listing--tv) .dc-hhp-project-card__fact-value {
    display:block;
    min-width:0;
    color:#071b50;
    font-size:13px;
    font-weight:700;
    line-height:1.35;
    overflow-wrap:anywhere;
}
.dc-hhp-listing--tv .dc-hhp-project-card a.dc-hhp-project-card__button--detail {
    align-self:stretch;
    border-radius:16px;
    min-height:78px;
    padding:12px;
    gap:8px;
    font-size:13px;
    font-weight:700;
    line-height:1.4;
}
:where(.dc-hhp-listing--tv) .dc-hhp-project-card__button-arrow {
    flex:0 0 16px;
    align-items:center;
    justify-content:center;
}
:where(.dc-hhp-listing--tv) .dc-hhp-project-card__button-arrow :is(i,svg,img) {
    width:16px;
    height:16px;
    max-width:100%;
    display:block;
    object-fit:contain;
}
:where(.dc-hhp-listing--tv) .dc-hhp-project-card__excerpt { margin-top:12px; }
.dc-hhp-listing--tv .dc-hhp-pagination { margin-top:32px; }
@media (max-width:1280px) {
    .dc-hhp-listing--tv .dc-hhp-project-card { gap:var(--dc-tv-column-gap,24px); }
    :where(.dc-hhp-listing--tv) .dc-hhp-project-card__content { padding:24px; }
    :where(.dc-hhp-listing--tv) .dc-hhp-project-card__title { font-size:clamp(21px,2.15vw,26px); }
}
@media (max-width:1024px) {
    .dc-hhp-listing--tv .dc-hhp-project-card { grid-template-columns:minmax(0,43%) minmax(0,1fr); }
    :where(.dc-hhp-listing--tv) .dc-hhp-project-card__content { padding:20px; }
    :where(.dc-hhp-listing--tv) .dc-hhp-project-card__facts { gap:8px; }
    :where(.dc-hhp-listing--tv) .dc-hhp-project-card__fact { padding:10px; }
    :where(.dc-hhp-listing--tv) .dc-hhp-project-card__title { font-size:22px; }
}
@media (max-width:767px) {
    :where(.dc-hhp-listing--tv) .dc-hhp-listing__title { font-size:clamp(24px,5vw,32px); }
    :where(.dc-hhp-listing--tv) .dc-hhp-listing__toolbar { margin-bottom:20px; }
    :where(.dc-hhp-listing--tv) .dc-hhp-listing__grid { gap:24px; }
    .dc-hhp-listing--tv .dc-hhp-project-card {
        display:grid;
        grid-template-columns:minmax(0,1fr);
        min-height:0;
        gap:0;
    }
    :where(.dc-hhp-listing--tv) .dc-hhp-project-card__media {
        width:100%;
        height:auto;
        min-height:0;
        aspect-ratio:1.5;
        border-radius:var(--dc-tv-image-radius,18px) var(--dc-tv-image-radius,18px) 0 0;
    }
    :where(.dc-hhp-listing--tv) .dc-hhp-project-card__content {
        width:100%;
        padding:22px 18px;
        border-radius:0 0 var(--dc-tv-content-radius,18px) var(--dc-tv-content-radius,18px);
    }
    :where(.dc-hhp-listing--tv) .dc-hhp-project-card__title { margin-top:12px; font-size:clamp(21px,5vw,26px); }
    :where(.dc-hhp-listing--tv) .dc-hhp-project-card__address { margin-top:12px; }
    :where(.dc-hhp-listing--tv) .dc-hhp-project-card__facts { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:375px) {
    :where(.dc-hhp-listing--tv) .dc-hhp-listing__filter-link { padding-inline:13px; }
    :where(.dc-hhp-listing--tv) .dc-hhp-project-card__facts { grid-template-columns:minmax(0,1fr); }
    :where(.dc-hhp-listing--tv) .dc-hhp-project-card__fact { min-height:60px; }
}
@media (prefers-reduced-motion:reduce) {
    :where(.dc-hhp-listing--tv) .dc-hhp-listing__filter-link { transition:none; }
}

/* v1.6.6 — SVG-only Thành Vinh tabs; all legacy listing modes retired.
   Scoped to the existing widget to avoid altering unrelated project widgets. */
.dc-hhp-listing--tv .dc-hhp-listing__filter-rail {
    min-width:0;
    overscroll-behavior-inline:contain;
    overflow-x:auto;
    overflow-y:hidden;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
}
.dc-hhp-listing--tv .dc-hhp-listing__filter-rail::-webkit-scrollbar { display:none; }
.dc-hhp-listing--tv .dc-hhp-listing__filters {
    display:flex;
    flex-wrap:nowrap;
    align-items:center;
    justify-content:flex-start;
    width:max-content;
    min-width:0;
    max-width:none;
    gap:var(--dc-tv-filter-gap,12px);
}
.dc-hhp-listing--tv a.dc-hhp-listing__filter-link,
.elementor .dc-hhp-listing--tv a.dc-hhp-listing__filter-link {
    box-sizing:border-box;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex:0 0 auto;
    min-height:var(--dc-tv-tab-height,48px);
    height:auto;
    padding:var(--dc-tv-tab-padding,0 20px);
    border:1px solid var(--dc-tv-tab-border,#F8F9FF);
    border-radius:var(--dc-tv-tab-radius,24px);
    background-color:var(--dc-tv-tab-normal-bg,#F8F9FF);
    color:var(--dc-tv-tab-color,#051A53);
    box-shadow:none;
    text-align:center;
    text-decoration:none;
    white-space:nowrap;
    max-width:none;
    transition:color .22s ease,background-color .22s ease,border-color .22s ease;
}
/* The SVG specifies these exact default pill widths at 1320px; long labels may expand. */
.dc-hhp-listing--tv a.dc-hhp-listing__filter-link:nth-child(1) { min-width:149px; }
.dc-hhp-listing--tv a.dc-hhp-listing__filter-link:nth-child(2) { min-width:182px; }
.dc-hhp-listing--tv a.dc-hhp-listing__filter-link:nth-child(3) { min-width:177px; }
.dc-hhp-listing--tv a.dc-hhp-listing__filter-link:not(.is-active):is(:hover,:focus-visible),
.elementor .dc-hhp-listing--tv a.dc-hhp-listing__filter-link:not(.is-active):is(:hover,:focus-visible) {
    background-color:var(--dc-tv-tab-hover-bg,#080977);
    border-color:var(--dc-tv-tab-hover-bg,#080977);
    color:var(--dc-tv-tab-hover-color,#FFFFFF);
    box-shadow:none;
}
.dc-hhp-listing--tv a.dc-hhp-listing__filter-link.is-active,
.elementor .dc-hhp-listing--tv a.dc-hhp-listing__filter-link.is-active,
.dc-hhp-listing--tv a.dc-hhp-listing__filter-link.is-active:is(:hover,:focus-visible),
.elementor .dc-hhp-listing--tv a.dc-hhp-listing__filter-link.is-active:is(:hover,:focus-visible) {
    background-color:var(--dc-tv-tab-active-bg,#080977);
    border-color:var(--dc-tv-tab-active-bg,#080977);
    color:var(--dc-tv-tab-active-color,#FFFFFF);
    box-shadow:none;
}
.dc-hhp-listing--tv a.dc-hhp-listing__filter-link:focus-visible {
    outline:2px solid #080977;
    outline-offset:3px;
}
@media (prefers-reduced-motion:reduce) {
    .dc-hhp-listing--tv a.dc-hhp-listing__filter-link,
    .elementor .dc-hhp-listing--tv a.dc-hhp-listing__filter-link { transition:none; }
}

/* ==========================================================================
 * v1.6.8 — Distribution card, mobile-only information layout.
 * Desktop and tablet retain the original two-column info/CTA arrangement.
 * At <= 767px, display 3 full-width, readable data rows followed by a CTA.
 * Do not shrink user content, clip text, or change any widget IDs.
 * ========================================================================== */
@media (max-width:767px) {
    .dc-hhp-distribution--mosaic .dc-hhp-distribution__detail-bottom {
        display:grid;
        grid-template-columns:minmax(max-content,auto);
        gap:var(--dc-tv-mobile-info-gap,10px);
        min-width:0;
        width:100%;
        align-items:stretch;
    }

    .dc-hhp-distribution--mosaic .dc-hhp-distribution__info-box {
        display:flex;
        flex-direction:column;
        align-items:stretch;
        justify-content:center;
        min-width:0;
        max-width:100%;
        min-height:0;
        gap:6px;
        padding:var(--dc-tv-mobile-info-padding-block,14px) var(--dc-tv-mobile-info-padding-inline,16px);
        border-radius:13px;
    }
    .dc-hhp-distribution--mosaic .dc-hhp-distribution__info-heading {
        display:flex;
        align-items:center;
        flex-wrap:wrap;
        gap:8px;
        min-width:0;
    }
    .dc-hhp-distribution--mosaic .dc-hhp-distribution__info-heading .dc-hhp-distribution__icon {
        flex-shrink:0;
    }
    .dc-hhp-distribution--mosaic .dc-hhp-distribution__info-label {
        min-width:0;
        font-size:13px;
        line-height:1.4;
    }
    .dc-hhp-distribution--mosaic .dc-hhp-distribution__info-box > .dc-hhp-distribution__info-value {
        min-width:0;
        max-width:100%;
        font-size:14px;
        line-height:1.45;
        text-align:left;
        white-space:normal;
        overflow-wrap:anywhere;
    }
    .elementor .dc-hhp-distribution--mosaic a.dc-hhp-distribution__detail-cta,
    .dc-hhp-distribution--mosaic a.dc-hhp-distribution__detail-cta {
        grid-column:1 / -1;
        width:100%;
        min-width:0;
        min-height:54px;
        margin-top:var(--dc-tv-mobile-cta-gap,4px);
        padding:12px 18px;
        font-size:14px;
        line-height:1.4;
        border-radius:13px;
    }
}

/* v1.7.16 — Project Distribution facts: one consistent intrinsic width per
   column across all rows. Auto maxima fill spare space, while max-content
   minima prevent clipping or overlapping. Mobile keeps the established one-
   column layout; only this information region scrolls when necessary. */
.dc-hhp-distribution--mosaic .dc-hhp-distribution__detail-bottom > .dc-hhp-distribution__info-box {
    width:100%;
    min-width:max-content;
    max-width:none;
}
/* If optional project fields leave an odd final item, use the full row. */
.dc-hhp-distribution--mosaic .dc-hhp-distribution__detail-bottom > :last-child:nth-child(odd) {
    grid-column:1 / -1;
}
.dc-hhp-distribution--mosaic .dc-hhp-distribution__info-heading {
    min-width:max-content;
    max-width:none;
    flex-wrap:nowrap;
}
.dc-hhp-distribution--mosaic .dc-hhp-distribution__info-label,
.dc-hhp-distribution--mosaic .dc-hhp-distribution__info-box > .dc-hhp-distribution__info-value {
    min-width:max-content;
    max-width:none;
    white-space:nowrap;
    overflow-wrap:normal;
    word-break:normal;
}
.elementor .dc-hhp-distribution--mosaic a.dc-hhp-distribution__detail-cta,
.dc-hhp-distribution--mosaic a.dc-hhp-distribution__detail-cta {
    width:100%;
    min-width:max-content;
    max-width:none;
    white-space:nowrap;
    overflow-wrap:normal;
}
.dc-hhp-distribution--mosaic a.dc-hhp-distribution__detail-cta .dc-hhp-distribution__cta-label {
    white-space:nowrap;
    overflow-wrap:normal;
    word-break:normal;
}
.dc-hhp-distribution--mosaic .dc-hhp-distribution__detail-bottom:focus-visible {
    outline:2px solid #080977;
    outline-offset:-2px;
}

/* v1.6.9: Full-quality project photos. Keep background-blur confined to the
   decorative section backdrop, never the visible distribution/listing images. */
.dc-hhp-listing--tv .dc-hhp-project-card__image,
.elementor .dc-hhp-listing--tv .dc-hhp-project-card img.dc-hhp-project-card__image,
.dc-hhp-distribution--mosaic .dc-hhp-distribution__project-photo,
.elementor .dc-hhp-distribution--mosaic img.dc-hhp-distribution__project-photo {
    filter:none;
    -webkit-filter:none;
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
    image-rendering:auto;
    opacity:1;
}

/* v1.7.1 — Project Overview / Tổng quan dự án.svg (1920 × 797).
   Scoped to this widget. Legacy controls are no longer registered, and the
   previous overview card/CTA styling cannot leak into the new component. */
.dc-hhp-overview {
    width: 100%;
    padding: 120px 32px 48px;
    margin: 0;
    background: #f4f7fa;
    color: #111;
    font-family: "Montserrat", Arial, sans-serif;
    scroll-margin-top: var(--dc-hhp-global-scroll-offset, 110px);
}
.dc-hhp-overview .dc-hhp-overview__inner {
    width: 100%;
    max-width: 1320px;
    margin-inline: auto;
    min-width: 0;
}
.dc-hhp-overview .dc-hhp-overview__grid {
    display: grid;
    grid-template-columns: minmax(0, 676fr) minmax(0, 592fr);
    align-items: start;
    column-gap: 52px;
    min-width: 0;
}
.dc-hhp-overview .dc-hhp-overview__grid--no-card { grid-template-columns: minmax(0, 1fr); }
.dc-hhp-overview .dc-hhp-overview__content { min-width: 0; max-width: 100%; width: auto; }
.dc-hhp-overview .dc-hhp-overview__title {
    margin: 0;
    padding: 0;
    color: #051a53;
    font-family: inherit;
    font-size: 36px;
    font-weight: 700;
    line-height: 1.28;
    max-width: 640px;
    letter-spacing: 0;
    text-transform: uppercase;
    overflow-wrap: anywhere;
}
.dc-hhp-overview .dc-hhp-overview__address {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: 26px 0 0;
    padding: 0;
    color: #c8010a;
    font-size: 23px;
    font-weight: 400;
    line-height: 1.4;
    text-transform: none;
    min-width: 0;
    overflow-wrap: anywhere;
}
.dc-hhp-overview .dc-hhp-overview__address-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 20px;
    width: 20px;
    height: 32px;
    min-height: 0;
}
.dc-hhp-overview .dc-hhp-overview__address-icon svg {
    width: 20px;
    height: 20px;
    display: block;
    fill: none;
    stroke: currentColor;
}
.dc-hhp-overview .dc-hhp-overview__body {
    margin: 30px 0 0;
    color: #111;
    font-family: inherit;
    font-size: 21px;
    line-height: 30px;
    max-width: 650px;
    font-weight: 400;
    min-width: 0;
    overflow-wrap: anywhere;
}
.dc-hhp-overview .dc-hhp-overview__body :is(p,li) {
    color: inherit;
    font: inherit;
    line-height: inherit;
    overflow-wrap: anywhere;
}
.dc-hhp-overview .dc-hhp-overview__body p { margin: 0 0 10px; }
.dc-hhp-overview .dc-hhp-overview__body > :first-child { margin-top: 0; }
.dc-hhp-overview .dc-hhp-overview__body > :last-child { margin-bottom: 0; }
.dc-hhp-overview .dc-hhp-overview__body :is(img,iframe,video,table,pre) { max-width: 100%; }
.dc-hhp-overview .dc-hhp-overview__body :is(table,pre) { display: block; overflow-x: auto; }
.dc-hhp-overview .dc-hhp-overview__actions { margin-top: 32px; }

/* Optional project video: 680×380 on the SVG's left media column. */
.dc-hhp-overview .dc-hhp-overview__video {
    position: relative;
    display: block;
    width: 100%;
    max-width: 100%;
    aspect-ratio: 34 / 19;
    min-width: 0;
    margin: 0 0 36px;
    border-radius: 24px;
    overflow: hidden;
    isolation: isolate;
    background: #000;
}
.dc-hhp-overview .dc-hhp-overview__video-element,
.dc-hhp-overview .dc-hhp-overview__video iframe {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 0;
    border: 0;
    background: #000;
    object-fit: contain;
}
.dc-hhp-overview .dc-hhp-overview__video-play {
    position: absolute;
    z-index: 2;
    top: 50%;
    left: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 72px;
    height: 72px;
    min-width: 44px;
    min-height: 44px;
    padding: 0;
    margin: 0;
    border: 1px solid rgba(255,255,255,.4);
    border-radius: 50%;
    transform: translate(-50%, -50%);
    background: rgba(255,255,255,.2);
    color: #fff;
    box-shadow: none;
    text-decoration: none;
    cursor: pointer;
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    transition: background-color .2s ease, border-color .2s ease;
}
.dc-hhp-overview .dc-hhp-overview__video-play svg {
    display: block;
    width: 24px;
    height: 24px;
    fill: currentColor;
    stroke: none;
    margin: 0;
}
.dc-hhp-overview .dc-hhp-overview__video-play:hover,
.dc-hhp-overview .dc-hhp-overview__video-play:focus-visible {
    background: rgba(255,255,255,.32);
    color: #fff;
    border-color: rgba(255,255,255,.75);
}
.dc-hhp-overview .dc-hhp-overview__video-play:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }
.dc-hhp-overview .dc-hhp-overview__video.is-playing .dc-hhp-overview__video-play { display: none; }
@media (max-width: 767px) {
    .dc-hhp-overview .dc-hhp-overview__video { border-radius: 18px; margin-bottom: 24px; }
    .dc-hhp-overview .dc-hhp-overview__video-play { width: 60px; height: 60px; }
}
@media (prefers-reduced-motion: reduce) {
    .dc-hhp-overview .dc-hhp-overview__video-play { transition: none; }
}

/* CTA — default and hover copied from Button (3).svg, with real link semantics. */
.elementor .dc-hhp-overview a.dc-hhp-overview__cta,
.dc-hhp-overview a.dc-hhp-overview__cta {
    appearance: none;
    -webkit-appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    width: auto;
    min-width: 200px;
    max-width: 100%;
    min-height: 48px;
    margin: 0;
    padding: 3px 3px 3px 23px;
    border: 1px solid #080977;
    border-radius: 999px;
    background-color: #080977;
    box-shadow: none;
    color: #fff;
    font-family: inherit;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.3;
    text-align: left;
    text-decoration: none;
    text-transform: none;
    cursor: pointer;
    transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
.dc-hhp-overview .dc-hhp-overview__cta-label { flex: 1 1 auto; min-width: 0; overflow-wrap: anywhere; }
.dc-hhp-overview .dc-hhp-overview__cta-icon {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 40px;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    color: #080977;
    background: #fff;
    transition: background-color .2s ease, color .2s ease;
}
.dc-hhp-overview .dc-hhp-overview__cta-icon svg { display: block; width: 22px; height: 22px; }
.dc-hhp-overview .dc-hhp-overview__arrow--default,
.dc-hhp-overview .dc-hhp-overview__arrow--hover { transition: opacity .15s ease; }
.dc-hhp-overview .dc-hhp-overview__arrow--default { opacity: 1; }
.dc-hhp-overview .dc-hhp-overview__arrow--hover { opacity: 0; }
.elementor .dc-hhp-overview a.dc-hhp-overview__cta:hover,
.elementor .dc-hhp-overview a.dc-hhp-overview__cta:focus-visible,
.dc-hhp-overview a.dc-hhp-overview__cta:hover,
.dc-hhp-overview a.dc-hhp-overview__cta:focus-visible {
    background-color: #fff;
    color: #080977;
    border-color: #080977;
    box-shadow: none;
    text-decoration: none;
}
.dc-hhp-overview a.dc-hhp-overview__cta:is(:hover,:focus-visible) .dc-hhp-overview__cta-icon {
    color: #fff;
    background-color: #080977;
}
.dc-hhp-overview a.dc-hhp-overview__cta:is(:hover,:focus-visible) .dc-hhp-overview__arrow--default { opacity: 0; }
.dc-hhp-overview a.dc-hhp-overview__cta:is(:hover,:focus-visible) .dc-hhp-overview__arrow--hover { opacity: 1; }
.dc-hhp-overview a.dc-hhp-overview__cta:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
.dc-hhp-overview a.dc-hhp-overview__cta:active { transform: translateY(1px); }

/* Right-hand info card, six data rows, taxonomy-backed status. */
.dc-hhp-overview .dc-hhp-overview__info-card.dc-hhp-overview__info-card--structured {
    display: block;
    flex: none;
    width: 100%;
    min-width: 0;
    max-width: 100%;
    margin: 0;
    padding: 32px;
    align-self: start;
    border: 1px solid rgba(0,0,0,.08);
    border-radius: 32px;
    background: #fff;
    box-shadow: none;
    color: #111;
}
.dc-hhp-overview .dc-hhp-overview__info-card--structured .dc-hhp-overview__info-title {
    display: block;
    margin: 0 0 16px;
    padding: 0;
    color: #c8010a;
    font-family: inherit;
    font-size: 32px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0;
    text-align: left;
    text-transform: uppercase;
    overflow-wrap: anywhere;
}
.dc-hhp-overview .dc-hhp-overview__structured-list { display: block; margin: 0; padding: 0; }
.dc-hhp-overview .dc-hhp-overview__spec-row--structured {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    min-height: 85px;
    padding: 14px 0;
    margin: 0;
    border: 0;
    border-bottom: 1px solid rgba(0,0,0,.08);
    background-color: transparent;
    min-width: 0;
}
.dc-hhp-overview .dc-hhp-overview__spec-row--structured:last-child {
    min-height: 70px;
    border-bottom: 0;
    padding-bottom: 0;
}
.dc-hhp-overview .dc-hhp-overview__spec-icon {
    flex: 0 0 24px;
    display: inline-flex;
    align-items: flex-start;
    justify-content: center;
    width: 24px;
    height: 24px;
    margin-top: 0;
    color: #c8010a;
}
.dc-hhp-overview .dc-hhp-overview__spec-icon svg { display: block; width: 24px; height: 24px; }
.dc-hhp-overview .dc-hhp-overview__spec-copy { display: block; min-width: 0; flex: 1 1 auto; }
.dc-hhp-overview .dc-hhp-overview__spec-row--structured dt {
    display: block;
    margin: 0 0 4px;
    padding: 0;
    color: #111;
    font-family: inherit;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.4;
    overflow-wrap: anywhere;
}
.dc-hhp-overview .dc-hhp-overview__spec-row--structured dd {
    display: block;
    margin: 0;
    padding: 0;
    color: #080977;
    font-family: inherit;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.45;
    min-width: 0;
    overflow-wrap: anywhere;
}

@media (max-width: 1536px) {
    .dc-hhp-overview { padding-top: 96px; padding-bottom: 64px; }
}
@media (max-width: 1280px) {
    .dc-hhp-overview { padding: 72px 40px; }
    .dc-hhp-overview .dc-hhp-overview__grid { column-gap: 36px; }
    .dc-hhp-overview .dc-hhp-overview__title { font-size: clamp(29px, 2.8vw, 36px); }
    .dc-hhp-overview .dc-hhp-overview__address { font-size: 19px; margin-top: 20px; }
    .dc-hhp-overview .dc-hhp-overview__body { font-size: 17px; }
    .dc-hhp-overview .dc-hhp-overview__info-card--structured .dc-hhp-overview__info-title { font-size: clamp(24px, 2.5vw, 32px); }
}
@media (max-width: 1024px) {
    .dc-hhp-overview { padding: 64px 28px; }
    .dc-hhp-overview .dc-hhp-overview__grid,
    .dc-hhp-overview .dc-hhp-overview__grid--no-card { grid-template-columns: minmax(0,1fr); row-gap: 40px; }
    .dc-hhp-overview .dc-hhp-overview__title { font-size: clamp(30px, 4vw, 36px); }
    .dc-hhp-overview .dc-hhp-overview__body { font-size: 18px; }
    .dc-hhp-overview .dc-hhp-overview__info-card.dc-hhp-overview__info-card--structured { margin-top: 0; }
}
@media (max-width: 767px) {
    .dc-hhp-overview { padding: 44px 20px 48px; }
    .dc-hhp-overview .dc-hhp-overview__grid { row-gap: 32px; }
    .dc-hhp-overview .dc-hhp-overview__title { font-size: clamp(26px, 7vw, 32px); line-height: 1.23; }
    .dc-hhp-overview .dc-hhp-overview__address { font-size: 17px; margin-top: 18px; gap: 8px; }
    .dc-hhp-overview .dc-hhp-overview__body { font-size: 16px; line-height: 1.65; margin-top: 20px; }
    .dc-hhp-overview .dc-hhp-overview__actions { margin-top: 26px; }
    .dc-hhp-overview .dc-hhp-overview__info-card.dc-hhp-overview__info-card--structured {
        padding: 24px 20px;
        border-radius: 24px;
    }
    .dc-hhp-overview .dc-hhp-overview__info-card--structured .dc-hhp-overview__info-title {
        font-size: clamp(23px, 6vw, 28px);
        margin-bottom: 10px;
    }
    .dc-hhp-overview .dc-hhp-overview__spec-row--structured { min-height: 0; padding: 14px 0; }
    .dc-hhp-overview .dc-hhp-overview__spec-row--structured:last-child { min-height: 0; }
    .dc-hhp-overview .dc-hhp-overview__spec-row--structured dd { font-size: 16px; }
    .dc-hhp-overview .dc-hhp-overview__spec-row--structured dt { font-size: 14px; }
}
@media (max-width: 430px) {
    .dc-hhp-overview { padding-inline: 16px; }
    .dc-hhp-overview .dc-hhp-overview__info-card.dc-hhp-overview__info-card--structured { padding: 22px 16px; }
    .dc-hhp-overview .dc-hhp-overview__title { font-size: 26px; }
    .dc-hhp-overview .dc-hhp-overview__info-card--structured .dc-hhp-overview__info-title { font-size: 22px; }
    .elementor .dc-hhp-overview a.dc-hhp-overview__cta,
    .dc-hhp-overview a.dc-hhp-overview__cta { width: 100%; min-height: 48px; }
}
@media (prefers-reduced-motion: reduce) {
    .dc-hhp-overview a.dc-hhp-overview__cta,
    .dc-hhp-overview .dc-hhp-overview__cta-icon,
    .dc-hhp-overview .dc-hhp-overview__arrow--default,
    .dc-hhp-overview .dc-hhp-overview__arrow--hover { transition: none; }
}

/* Thành Vinh Project Progress — visual reference 1320x384; responsive content-first cards. */
.dc-hhp-progress {
    width: 100%;
    max-width: 100%;
    background: transparent;
    box-sizing: border-box;
}
.dc-hhp-progress, .dc-hhp-progress * { box-sizing: border-box; }
.dc-hhp-progress .dc-hhp-progress__inner {
    width: 100%;
    max-width: 1320px;
    margin-inline: auto;
}
.dc-hhp-progress .dc-hhp-progress__heading {
    margin: 0;
    padding: 0;
    color: #080977;
    font-size: 40px;
    line-height: 1.2;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0;
    overflow-wrap: anywhere;
}
.dc-hhp-progress .dc-hhp-progress__cards {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 56px;
    margin-top: 28px;
    padding-inline: 42px;
    width: 100%;
    min-width: 0;
}
.dc-hhp-progress .dc-hhp-progress__cards--single { grid-template-columns: minmax(0, 590px); }
.dc-hhp-progress .dc-hhp-progress__card {
    min-width: 0;
    max-width: 100%;
    min-height: 308px;
    margin: 0;
    padding: 46px;
    border: 1px solid #051a53;
    border-radius: 32px;
    background: #fff;
    box-shadow: none;
    color: #111;
    overflow-wrap: anywhere;
}
.dc-hhp-progress .dc-hhp-progress__card-header {
    display: flex;
    align-items: center;
    gap: 16px;
    min-width: 0;
}
.dc-hhp-progress .dc-hhp-progress__icon {
    display: inline-flex;
    flex: 0 0 56px;
    width: 56px;
    height: 56px;
    align-items: center;
    justify-content: center;
    border-radius: 16px;
    background: rgb(200 1 10 / 8%);
    color: #c8010a;
}
.dc-hhp-progress .dc-hhp-progress__icon svg { display: block; flex: none; width: 28px; height: 28px; max-width: 100%; max-height: 100%; }
.dc-hhp-progress .dc-hhp-progress__icon i { display: block; font-size: 28px; line-height: 1; font-style: normal; }
.dc-hhp-progress .dc-hhp-progress__card-title {
    margin: 0;
    padding: 0;
    min-width: 0;
    font-size: 32px;
    line-height: 1.2;
    font-weight: 700;
    letter-spacing: 0;
    color: #c8010a;
    text-transform: uppercase;
    overflow-wrap: anywhere;
}
.dc-hhp-progress .dc-hhp-progress__divider {
    width: 100%;
    height: 1px;
    background: #e6e6e6;
    margin-top: 24px;
}
.dc-hhp-progress .dc-hhp-progress__description {
    margin: 24px 0 0;
    font-size: 18px;
    line-height: 27px;
    font-weight: 400;
    color: #111;
    overflow-wrap: anywhere;
    white-space: normal;
}
/* Hide the empty Elementor widget shell, including container gap, on public pages.
   The editor notice remains visible while configuring an unpopulated project. */
.elementor-widget-dc_hh_project_progress:not(:has(.dc-hhp-progress, .dc-hhp-editor-notice)) {
    display: none;
}
@media (max-width: 1536px) {
    .dc-hhp-progress .dc-hhp-progress__inner { padding-inline: 24px; }
}
@media (max-width: 1280px) {
    .dc-hhp-progress .dc-hhp-progress__cards { gap: 24px; padding-inline: 20px; }
    .dc-hhp-progress .dc-hhp-progress__card { padding: 32px; }
    .dc-hhp-progress .dc-hhp-progress__card-title { font-size: clamp(23px, 2.25vw, 32px); }
}
@media (max-width: 1024px) {
    .dc-hhp-progress .dc-hhp-progress__heading { font-size: clamp(28px, 3.8vw, 38px); }
    .dc-hhp-progress .dc-hhp-progress__cards { padding-inline: 0; gap: 20px; }
    .dc-hhp-progress .dc-hhp-progress__card { padding: 24px; border-radius: 24px; min-height: 0; }
    .dc-hhp-progress .dc-hhp-progress__card-header { gap: 12px; }
    .dc-hhp-progress .dc-hhp-progress__icon { flex-basis: 48px; width: 48px; height: 48px; border-radius: 14px; }
    .dc-hhp-progress .dc-hhp-progress__description { font-size: 16px; line-height: 1.6; }
}
@media (max-width: 767px) {
    .dc-hhp-progress .dc-hhp-progress__inner { padding-inline: 16px; }
    .dc-hhp-progress .dc-hhp-progress__heading { font-size: clamp(25px, 6.8vw, 34px); }
    .dc-hhp-progress .dc-hhp-progress__cards,
    .dc-hhp-progress .dc-hhp-progress__cards--single { grid-template-columns: minmax(0, 1fr); gap: 16px; margin-top: 22px; }
    .dc-hhp-progress .dc-hhp-progress__card { padding: 24px 20px; border-radius: 22px; }
    .dc-hhp-progress .dc-hhp-progress__card-title { font-size: clamp(19px, 5vw, 24px); }
    .dc-hhp-progress .dc-hhp-progress__divider { margin-top: 20px; }
    .dc-hhp-progress .dc-hhp-progress__description { margin-top: 18px; }
}
@media (max-width: 359px) {
    .dc-hhp-progress .dc-hhp-progress__inner { padding-inline: 12px; }
    .dc-hhp-progress .dc-hhp-progress__card { padding: 20px 16px; }
    .dc-hhp-progress .dc-hhp-progress__icon { flex-basis: 44px; width: 44px; height: 44px; }
}


/* Thành Vinh Project Location — SVG reference 1920 × 481.
 * Keep the existing Google Maps iframe as the actual interactive map.
 * Only the Location widget uses these new rules. */
.dc-hhp-location {
    box-sizing:border-box;
    width:100%;
    max-width:100%;
    padding:48px 0;
    background:#fff;
    scroll-margin-top:var(--dc-hhp-global-scroll-offset,110px);
}
.dc-hhp-location, .dc-hhp-location * { box-sizing:border-box; }
.dc-hhp-location .dc-hhp-location__inner { width:100%; max-width:1320px; min-width:0; margin-inline:auto; }
.dc-hhp-location .dc-hhp-location__map-grid {
    display:grid;
    grid-template-columns:minmax(0,612fr) minmax(0,636fr);
    align-items:stretch;
    gap:72px;
    width:100%;
    min-width:0;
}
.dc-hhp-location .dc-hhp-location__map-grid--info-only,
.dc-hhp-location .dc-hhp-location__map-grid--map-only { grid-template-columns:minmax(0,1fr); }
.dc-hhp-location .dc-hhp-location__info { min-width:0; max-width:100%; padding:0; background:transparent; overflow-wrap:anywhere; }
.dc-hhp-location .dc-hhp-location__title {
    padding:0; margin:0; color:#080977;
    font-size:40px; line-height:1.2; letter-spacing:0;
    font-weight:700; text-transform:uppercase; overflow-wrap:anywhere;
}
.dc-hhp-location .dc-hhp-location__address {
    display:flex; align-items:flex-start; gap:10px;
    margin-top:24px; padding:0;
    color:#c8010a; font-size:24px; font-weight:600;
    line-height:1.3; text-transform:none; overflow-wrap:anywhere;
}
.dc-hhp-location .dc-hhp-location__address-icon {
    display:inline-flex; align-items:center; justify-content:center;
    flex:0 0 auto; width:1em; height:1.3em; font-size:20px;
    line-height:1.3; color:inherit;
}
.dc-hhp-location .dc-hhp-location__address-icon svg { display:block; width:1em; height:1em; fill:currentColor; }
.dc-hhp-location .dc-hhp-location__address-icon i { display:block; font-size:1em; line-height:1; }
.dc-hhp-location .dc-hhp-location__body {
    margin-top:8px; min-width:0; max-width:100%;
    color:#202020; font-size:18px; font-weight:400; line-height:1.5;
    white-space:normal; overflow-wrap:anywhere;
}
.dc-hhp-location .dc-hhp-location__body > :first-child { margin-top:0; }
.dc-hhp-location .dc-hhp-location__body > :last-child { margin-bottom:0; }
.dc-hhp-location .dc-hhp-location__body p { margin-block:0 12px; }
.dc-hhp-location .dc-hhp-location__body ul,
.dc-hhp-location .dc-hhp-location__body ol { margin:0 0 12px; padding-inline-start:1.5em; }
.dc-hhp-location .dc-hhp-location__body li { margin:0; padding:0; }
.dc-hhp-location .dc-hhp-location__body img,
.dc-hhp-location .dc-hhp-location__body iframe,
.dc-hhp-location .dc-hhp-location__body video,
.dc-hhp-location .dc-hhp-location__body table,
.dc-hhp-location .dc-hhp-location__body pre { max-width:100%; }
.dc-hhp-location .dc-hhp-location__body pre,
.dc-hhp-location .dc-hhp-location__body table { overflow-x:auto; }
.elementor .dc-hhp-location a.dc-hhp-location__button,
.dc-hhp-location a.dc-hhp-location__button {
    display:inline-flex; align-items:center; justify-content:space-between;
    gap:16px; min-width:0; width:max-content; max-width:100%;
    min-height:48px; margin-top:24px; padding:3px 3px 3px 24px;
    border:1px solid #c8010a; border-radius:24px;
    background:#c8010a; color:#fff;
    font-size:18px; font-weight:600; line-height:1.25;
    text-align:left; text-decoration:none; text-transform:none;
    transition:background-color .2s ease,color .2s ease,border-color .2s ease;
}
.dc-hhp-location .dc-hhp-location__button-text { flex:0 1 auto; min-width:0; overflow-wrap:anywhere; }
.dc-hhp-location .dc-hhp-location__button-icon {
    display:inline-flex; flex:0 0 40px; align-items:center; justify-content:center;
    width:40px; height:40px; border-radius:50%;
    background:#fff; color:#c8010a;
    transition:background-color .2s ease,color .2s ease;
}
.dc-hhp-location .dc-hhp-location__button-icon svg { display:block; width:20px; height:20px; max-width:100%; max-height:100%; }
.dc-hhp-location .dc-hhp-location__button-icon i { font-size:20px; line-height:1; }
.elementor .dc-hhp-location a.dc-hhp-location__button:hover,
.elementor .dc-hhp-location a.dc-hhp-location__button:focus-visible,
.dc-hhp-location a.dc-hhp-location__button:hover,
.dc-hhp-location a.dc-hhp-location__button:focus-visible {
    border-color:#c8010a; background:#fff; color:#c8010a; text-decoration:none;
}
.dc-hhp-location a.dc-hhp-location__button:hover .dc-hhp-location__button-icon,
.dc-hhp-location a.dc-hhp-location__button:focus-visible .dc-hhp-location__button-icon {
    background:#c8010a; color:#fff;
}
.dc-hhp-location a.dc-hhp-location__button:focus-visible { outline:2px solid currentColor; outline-offset:3px; }
.dc-hhp-location .dc-hhp-location__map-media {
    position:relative; display:block; min-width:0; width:100%;
    min-height:385px; border-radius:24px;
    background:#e7f0ec; overflow:hidden;
}
.dc-hhp-location .dc-hhp-location__map-frame {
    position:absolute; inset:0; display:block;
    width:100%; height:100%; max-width:none; border:0;
}
/* Keep the map to the right until the content needs a structural change. */
@media (max-width:1536px) {
    .dc-hhp-location { padding-inline:32px; }
}
@media (max-width:1366px) {
    .dc-hhp-location .dc-hhp-location__inner { padding-inline:clamp(16px,2vw,28px); }
}
@media (max-width:1280px) {
    .dc-hhp-location .dc-hhp-location__map-grid { gap:36px; grid-template-columns:minmax(0,1fr) minmax(0,1.03fr); }
    .dc-hhp-location .dc-hhp-location__title { font-size:clamp(30px,3vw,40px); }
    .dc-hhp-location .dc-hhp-location__address { font-size:clamp(18px,2vw,24px); }
    .dc-hhp-location .dc-hhp-location__body { font-size:17px; }
}
@media (max-width:1024px) {
    .dc-hhp-location { padding:48px 24px; }
    .dc-hhp-location .dc-hhp-location__inner { padding-inline:0; }
    .dc-hhp-location .dc-hhp-location__map-grid { gap:28px; }
    .dc-hhp-location .dc-hhp-location__map-media { min-height:340px; }
    .dc-hhp-location .dc-hhp-location__title { font-size:32px; }
}
@media (max-width:767px) {
    .dc-hhp-location { padding:36px 16px 40px; }
    .dc-hhp-location .dc-hhp-location__map-grid,
    .dc-hhp-location .dc-hhp-location__map-grid--info-only,
    .dc-hhp-location .dc-hhp-location__map-grid--map-only {
        grid-template-columns:minmax(0,1fr); row-gap:28px;
    }
    .dc-hhp-location .dc-hhp-location__title { font-size:clamp(26px,7vw,34px); }
    .dc-hhp-location .dc-hhp-location__address { margin-top:18px; font-size:clamp(18px,4.5vw,22px); }
    .dc-hhp-location .dc-hhp-location__body { font-size:16px; line-height:1.6; }
    .dc-hhp-location .dc-hhp-location__map-media { min-height:270px; }
    .elementor .dc-hhp-location a.dc-hhp-location__button,
    .dc-hhp-location a.dc-hhp-location__button { min-height:48px; }
}
@media (max-width:359px) {
    .dc-hhp-location { padding-inline:12px; }
    .dc-hhp-location .dc-hhp-location__map-media { min-height:235px; }
}
@media (prefers-reduced-motion:reduce) {
    .dc-hhp-location a.dc-hhp-location__button,
    .dc-hhp-location .dc-hhp-location__button-icon { transition:none; }
}


/* Project Documents v1.7.7 — supplied Desktop SVG, isolated from legacy .dc-hhp-docs. */
.dc-hhp-documents, .dc-hhp-documents * { box-sizing:border-box; }
.dc-hhp-documents { width:100%; min-width:0; padding:50px 24px 80px; background:#fff; scroll-margin-top:var(--dc-hhp-global-scroll-offset,110px); }
.dc-hhp-documents__inner { width:100%; max-width:1320px; margin-inline:auto; min-width:0; }
.dc-hhp-documents__title { margin:0 0 15px; color:#051A53; font-family:Arial,sans-serif; font-size:40px; line-height:1.2; font-weight:800; letter-spacing:0; text-transform:uppercase; overflow-wrap:anywhere; }
.dc-hhp-documents__description { max-width:100%; margin:0 0 29px; color:#111; font-family:Arial,sans-serif; font-size:18px; line-height:1.55; font-weight:400; overflow-wrap:anywhere; }
.dc-hhp-documents__list { overflow:hidden; min-width:0; background:#fff; border:1px solid #E1E6EF; border-radius:16px; }
.dc-hhp-documents__item { display:flex; align-items:center; gap:16px; min-height:92px; min-width:0; padding:14px 24px; border-bottom:1px solid #E1E6EF; background:#fff; }
.dc-hhp-documents__item:last-child { border-bottom:0; }
.dc-hhp-documents__file-icon { flex:0 0 auto; display:flex; align-items:center; justify-content:center; width:48px; height:48px; color:#BA1F29; }
.dc-hhp-documents__file-icon img, .dc-hhp-documents__file-icon svg { display:block; width:100%; height:100%; max-width:100%; object-fit:contain; }
.dc-hhp-documents__file-icon i { font-size:36px; }
.dc-hhp-documents__item-text { min-width:0; flex:1 1 auto; }
.dc-hhp-documents__item-title { margin:0; color:#051A53; font-family:Arial,sans-serif; font-size:20px; line-height:1.35; font-weight:700; overflow-wrap:anywhere; }
.dc-hhp-documents__item-subtitle { margin-top:5px; color:#080977; font-family:Arial,sans-serif; font-size:15px; line-height:1.4; font-weight:400; overflow-wrap:anywhere; }
.dc-hhp-documents__actions { display:flex; flex:0 0 auto; align-items:center; justify-content:flex-end; gap:16px; margin-left:auto; }
.elementor .dc-hhp-documents a.dc-hhp-documents__action,
.dc-hhp-documents a.dc-hhp-documents__action { display:inline-flex; flex:0 0 48px; align-items:center; justify-content:center; width:48px; height:48px; min-width:48px; min-height:48px; padding:0; border:1px solid #E2E2E2; border-radius:16px; background:#FCFCFC; color:#080977; line-height:1; text-decoration:none; cursor:pointer; transition:background-color .2s ease,border-color .2s ease,color .2s ease; }
.dc-hhp-documents__action svg, .dc-hhp-documents__action img { display:block; width:24px; height:24px; max-width:100%; object-fit:contain; }
.dc-hhp-documents__action i { font-size:21px; }
.elementor .dc-hhp-documents a.dc-hhp-documents__action:hover,
.elementor .dc-hhp-documents a.dc-hhp-documents__action:focus-visible,
.dc-hhp-documents a.dc-hhp-documents__action:hover,
.dc-hhp-documents a.dc-hhp-documents__action:focus-visible { background:#080977; color:#fff; border-color:#080977; }
.dc-hhp-documents a.dc-hhp-documents__action:focus-visible { outline:2px solid #080977; outline-offset:3px; }
.dc-hhp-documents__empty { padding:24px; color:#555; font-size:16px; line-height:1.5; overflow-wrap:anywhere; }
@media (max-width:1536px) { .dc-hhp-documents__title { font-size:clamp(32px,2.6vw,40px); } }
@media (max-width:1024px) { .dc-hhp-documents { padding:44px 24px 56px; } .dc-hhp-documents__title { font-size:34px; } .dc-hhp-documents__description { font-size:17px; } .dc-hhp-documents__item-title { font-size:18px; } .dc-hhp-documents__item { padding-inline:18px; } }
@media (max-width:767px) { .dc-hhp-documents { padding:36px 16px 44px; } .dc-hhp-documents__title { font-size:clamp(25px,7vw,32px); } .dc-hhp-documents__description { font-size:16px; line-height:1.6; margin-bottom:24px; } .dc-hhp-documents__item { min-height:96px; gap:10px; padding:14px 12px; } .dc-hhp-documents__file-icon { width:38px; height:38px; } .dc-hhp-documents__item-title { font-size:16px; } .dc-hhp-documents__item-subtitle { margin-top:4px; font-size:12px; } .dc-hhp-documents__actions { gap:8px; } }
@media (max-width:430px) { .dc-hhp-documents__item { flex-wrap:wrap; } .dc-hhp-documents__item-text { flex:1 1 calc(100% - 48px); } .dc-hhp-documents__actions { flex:0 0 100%; justify-content:flex-end; margin-top:2px; } }
@media (max-width:359px) { .dc-hhp-documents { padding-inline:12px; } .dc-hhp-documents__item { padding-inline:10px; } }
@media (prefers-reduced-motion:reduce) { .dc-hhp-documents a.dc-hhp-documents__action { transition:none; } }

/* v1.7.9 – Figma CTA "Xem chi tiết dự án": two independently editable icons.
 * Keep each icon in the same grid cell to avoid any layout shift on hover/focus.
 * The normal icon ID remains unchanged for existing Elementor data. */
.dc-hhp-listing .dc-hhp-project-card__button-arrow,
.dc-hhp-related .dc-hhp-project-card__button-arrow {
    display:inline-grid;
    position:relative;
    align-items:center;
    justify-items:center;
    line-height:1;
    min-width:0;
}
.dc-hhp-listing .dc-hhp-project-card__button-arrow-state,
.dc-hhp-related .dc-hhp-project-card__button-arrow-state {
    grid-area:1 / 1;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    max-width:100%;
    opacity:1;
    transition:opacity .18s ease;
}
.dc-hhp-listing .dc-hhp-project-card__button-arrow-state--hover,
.dc-hhp-related .dc-hhp-project-card__button-arrow-state--hover { opacity:0; }
.dc-hhp-listing a.dc-hhp-project-card__button--detail:is(:hover,:focus-visible) .dc-hhp-project-card__button-arrow-state--normal,
.dc-hhp-related a.dc-hhp-related-card__button:is(:hover,:focus-visible) .dc-hhp-project-card__button-arrow-state--normal { opacity:0; }
.dc-hhp-listing a.dc-hhp-project-card__button--detail:is(:hover,:focus-visible) .dc-hhp-project-card__button-arrow-state--hover,
.dc-hhp-related a.dc-hhp-related-card__button:is(:hover,:focus-visible) .dc-hhp-project-card__button-arrow-state--hover { opacity:1; }
.dc-hhp-listing a.dc-hhp-project-card__button--detail:is(:hover,:focus-visible) .dc-hhp-project-card__button-arrow,
.dc-hhp-related a.dc-hhp-related-card__button:is(:hover,:focus-visible) .dc-hhp-project-card__button-arrow { color:inherit; }
.dc-hhp-listing .dc-hhp-project-card__button-arrow-state :is(svg,i,img),
.dc-hhp-related .dc-hhp-project-card__button-arrow-state :is(svg,i,img) {
    display:block;
    object-fit:contain;
    max-width:100%;
}
@media (prefers-reduced-motion:reduce) {
    .dc-hhp-listing .dc-hhp-project-card__button-arrow-state,
    .dc-hhp-related .dc-hhp-project-card__button-arrow-state { transition:none; }
}
@media (max-width:767px) {
    /* Compact touch CTA; long labels may wrap naturally. */
    .dc-hhp-listing--tv .dc-hhp-project-card a.dc-hhp-project-card__button--detail,
    .dc-hhp-related .dc-hhp-related-card__button.dc-hhp-project-card__button--detail {
        min-height:48px;
    }
}

/* v1.7.12 — intrinsic minimum per column, with remaining width shared across
   columns. The widest cell still sets the column minimum; auto-sized tracks
   stretch to fill the card when room remains. Horizontal scrolling is limited
   to the information rail if the content cannot fit. */
.dc-hhp-listing--tv .dc-hhp-project-card__facts,
.dc-hhp-related .dc-hhp-project-card__facts {
    min-width:0;
    max-width:100%;
    overflow-x:auto;
    overflow-y:hidden;
    overscroll-behavior-x:contain;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:thin;
}
/* An auto maximum distributes spare width without reducing any track below
   its max-content minimum. Fixed max-content tracks left an empty strip on
   the right; equally sized 1fr tracks can squeeze or overflow unnecessarily.
   The saved Elementor column count is preserved via the updated selectors. */
.dc-hhp-listing--tv .dc-hhp-project-card__facts {
    grid-template-columns:repeat(2,minmax(max-content,auto));
}
/* Related Projects preserves its own responsive column-count control. */
.dc-hhp-related .dc-hhp-project-card__facts {
    grid-template-columns:repeat(2,minmax(max-content,auto));
}
.dc-hhp-listing--tv .dc-hhp-project-card__fact,
.dc-hhp-related .dc-hhp-project-card__fact {
    width:100%;
    min-width:max-content;
    max-width:none;
    box-sizing:border-box;
}
/* The CTA is also a grid cell and participates in column sizing. */
.dc-hhp-listing--tv .dc-hhp-project-card a.dc-hhp-project-card__button--detail,
.dc-hhp-related .dc-hhp-project-card a.dc-hhp-project-card__button--detail {
    min-width:max-content;
    max-width:none;
}
.dc-hhp-listing--tv .dc-hhp-project-card__fact-label,
.dc-hhp-listing--tv .dc-hhp-project-card__fact-value,
.dc-hhp-related .dc-hhp-project-card__fact-label,
.dc-hhp-related .dc-hhp-project-card__fact-value {
    white-space:nowrap;
    overflow-wrap:normal;
    word-break:normal;
}
.dc-hhp-listing--tv .dc-hhp-project-card__fact-heading,
.dc-hhp-related .dc-hhp-project-card__fact-text {
    min-width:max-content;
}
.dc-hhp-listing--tv .dc-hhp-project-card__button--detail > span:first-child,
.dc-hhp-related .dc-hhp-related-card__button > span:first-child {
    white-space:nowrap;
    overflow-wrap:normal;
}
.dc-hhp-listing--tv .dc-hhp-project-card__facts:focus-visible,
.dc-hhp-related .dc-hhp-project-card__facts:focus-visible {
    outline:2px solid #080977;
    outline-offset:-2px;
}
@media (max-width:375px) {
    .dc-hhp-listing--tv .dc-hhp-project-card__facts {
        grid-template-columns:minmax(max-content,auto);
    }
}
@media (max-width:430px) {
    .dc-hhp-related .dc-hhp-project-card__facts {
        grid-template-columns:minmax(max-content,auto);
    }
}
