.has-builder-projects {
    --builder-projects-height: 126px;
    padding-bottom: calc(var(--builder-projects-height) + env(safe-area-inset-bottom));
}
.builder-projects {
    position: fixed;
    inset: auto 0 0;
    z-index: 34;
    padding: 14px max(24px, calc((100vw - 1440px) / 2)) calc(14px + env(safe-area-inset-bottom));
    background: var(--paper);
    border-top: 1px solid #c9cfbf;
    box-shadow: 0 -8px 30px #193c3814;
}
.builder-projects-inner {
    display: grid;
    grid-template-columns: 140px minmax(0, 1fr);
    align-items: center;
    gap: 18px;
    padding-right: 304px;
    min-height: 97px;
}
.builder-projects-heading h2 {
    font: 11px/1.5 Arial, sans-serif;
    letter-spacing: .2px;
    color: var(--muted);
}
.builder-projects-heading h2 strong {
    display: block;
    margin-top: 3px;
    font: 22px/1.2 Georgia, serif;
    color: var(--red-dark);
}
.builder-projects-controls { display: flex; gap: 6px; margin-top: 8px; }
.builder-projects-controls[hidden] { display: none; }
.builder-projects-controls button {
    display: grid;
    place-items: center;
    width: 34px;
    height: 30px;
    padding: 0;
    border: 1px solid #bac4b8;
    background: transparent;
    color: var(--red-dark);
    font-size: 18px;
}
.builder-projects-controls button:hover:not(:disabled) { background: #f3eae6; }
.builder-projects-controls button:disabled { opacity: .35; cursor: default; }
.builder-projects-list {
    display: flex;
    gap: 10px;
    min-width: 0;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory;
    scrollbar-width: thin;
    scrollbar-color: #aeb9ab transparent;
    padding: 5px 3px;
}
.builder-project-card {
    display: flex;
    flex: 0 0 270px;
    align-items: center;
    gap: 11px;
    min-width: 0;
    min-height: 86px;
    padding: 10px;
    background: #fff;
    border: 1px solid var(--line);
    scroll-snap-align: start;
    transition: border-color .15s, background .15s;
}
.builder-project-card:hover { border-color: var(--red); background: #fffdf8; }
.builder-project-card:focus-visible { outline-offset: 0; }
.builder-project-picture {
    display: grid;
    place-items: center;
    position: relative;
    width: 64px;
    height: 64px;
    flex: 0 0 64px;
    overflow: hidden;
    background: #f3eae6;
    color: #7a8b7b;
}
.builder-project-placeholder { width: 32px; height: 32px; }
.builder-project-picture img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.builder-project-picture img[hidden] { display: none; }
.builder-project-details { display: block; min-width: 0; flex: 1; }
.builder-project-details strong {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    font: 600 12px/1.35 Arial, sans-serif;
    color: var(--red-dark);
    margin-bottom: 4px;
}
.builder-project-place, .builder-project-city {
    display: block;
    font: 11px/1.4 Arial, sans-serif;
    color: var(--muted);
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}
.builder-project-link-icon { align-self: flex-start; color: var(--red); font-size: 15px; }
.has-builder-projects .floating-price {
    width: 280px;
    right: max(24px, calc((100vw - 1440px) / 2));
    bottom: calc(14px + env(safe-area-inset-bottom));
    box-shadow: none;
}
.has-builder-projects .floating-price > a { padding: 12px 14px; }
.has-builder-projects .floating-price small { padding: 6px 14px; }
.has-builder-projects .floating-price strong { font-size: 20px; }
.dialog-open .builder-projects,
.has-builder-projects:has(.ipdc-cookie-banner:not([hidden])) .builder-projects,
.has-builder-projects:has(.ipdc-cookie-dialog[open]) .builder-projects,
.ipdc-cookie-controls-visible .builder-projects { visibility: hidden; pointer-events: none; }
@media (max-width: 1100px) {
    .builder-projects-inner { grid-template-columns: minmax(0, 1fr); gap: 4px; }
    .builder-projects-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
    .builder-projects-heading h2 strong { display: inline; margin: 0 0 0 4px; font-size: 16px; }
    .builder-projects-controls { margin-top: 0; }
    .builder-projects-list { padding-top: 0; }
}
@media (max-width: 700px) {
    .has-builder-projects { padding-bottom: calc(var(--builder-projects-height) + 56px + env(safe-area-inset-bottom)); }
    .builder-projects { bottom: calc(56px + env(safe-area-inset-bottom)); padding: 8px 16px 6px; }
    .builder-projects-inner { padding-right: 0; min-height: 0; }
    .builder-project-card { flex-basis: 260px; min-height: 76px; padding: 8px; gap: 10px; }
    .builder-project-picture { width: 56px; height: 56px; flex-basis: 56px; }
    .builder-projects-heading h2 { font-size: 11px; }
    .builder-projects-controls button { width: 36px; height: 32px; }
    .has-builder-projects .floating-price { display: none; }
    .has-builder-projects .site-footer { padding-bottom: 32px; }
}
@media (prefers-reduced-motion: reduce) {
    .builder-project-card { transition: none; }
}
@media print {
    .builder-projects { display: none; }
    .has-builder-projects { padding-bottom: 0; }
}

/* Align the reference strip with this site's enquiry controls. */
body.has-builder-projects{padding-bottom:calc(var(--builder-projects-height) + env(safe-area-inset-bottom))}
.builder-projects{z-index:7}.builder-projects-heading h2{margin:0}.has-builder-projects .floating-price{z-index:8;width:280px;padding:12px 14px;bottom:24px}.has-builder-projects .floating-price>a{padding:0;gap:12px}.has-builder-projects .floating-price strong{font-size:16px}
body:has(dialog[open]) .builder-projects{visibility:hidden;pointer-events:none}
@media(max-width:700px){body.has-builder-projects{padding-bottom:calc(var(--builder-projects-height) + var(--project-mobile-bar-height,70px))}.builder-projects{bottom:var(--project-mobile-bar-height,70px)}}
