/* =========================
   Portfolio page styles
   Extracted from templates/portfolio.html
   ========================= */
    .image-effect-one {
        position: relative
    }

    .add-card {
        aspect-ratio: 4 / 3;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 8px;
        background: #f7f7f7;
        border: 1px dashed #cfd8dc;
        border-radius: 6px;
        text-decoration: none
    }

    .add-card .add-plus {
        font-size: 32px;
        line-height: 1
    }

    .add-card .add-label {
        font-weight: 600
    }

    @supports not (aspect-ratio:1) {
        .add-card {
            min-height: 240px
        }
    }

    .portfolio-title-bar {
        position: absolute;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 5;
        display: flex;
        justify-content: space-between;
        align-items: center;
        background: #fff;
        padding: 12px 14px;
        border-top: 1px solid #eee
    }

        /* Give masonry some breathing room */
        .portfolio-wrap {
        margin-left: -15px;
        margin-right: -15px;
        }
        .portfolio-wrap .masonry-item {
        padding-left: 15px;
        padding-right: 15px;
        }

    .portfolio-wrap .image-effect-one .figcaption {
        position: absolute;
        right: 10px;
        bottom: 10px;
        z-index: 6;
        background: transparent;
        padding: 0;
        border: 0
    }

    .portfolio-wrap .image-effect-one .figcaption .empty50 {
        display: none;
    }

    .image-effect-one .figcaption a {
        display: inline-flex;
        align-items: center;
        justify-content: center
    }

    /* inline modal shell */
    .ap-modal {
        max-width: 960px;
        margin: 0 auto;
        background: #fff;
        border-radius: 12px;
        overflow: hidden;
        box-shadow: 0 10px 30px rgba(0, 0, 0, .2)
    }

    .ap-header {
        display: flex;
        justify-content: space-between;
        align-items: center;
        background: #0f172a;
        color: #fff;
        padding: 14px 18px;
        font-weight: 600
    }

    .ap-body {
        padding: 18px;
        max-height: 70vh;
        overflow: auto
    }

    .ap-body form .submit-row {
        display: flex;
        gap: 8px
    }

    body.preview-mode .portfolio-columns {
        display: block !important;
        width: 100%;
        -webkit-column-count: 1 !important;
        -moz-column-count: 1 !important;
        column-count: 1 !important;
        -webkit-column-gap: 24px !important;
        -moz-column-gap: 24px !important;
        column-gap: 24px !important;
    }

    body.preview-mode .portfolio-columns > .masonry-item {
        display: inline-block !important;
        width: 100% !important;
        max-width: 100% !important;
        float: none !important;
        flex: none !important;
        break-inside: avoid;
        page-break-inside: avoid;
        -webkit-column-break-inside: avoid;
        margin-bottom: 24px;
    }

    @media (min-width: 576px) {
        body.preview-mode .portfolio-columns {
            -webkit-column-count: 2 !important;
            -moz-column-count: 2 !important;
            column-count: 2 !important;
        }
    }

    @media (min-width: 992px) {
        body.preview-mode .portfolio-columns {
            -webkit-column-count: 3 !important;
            -moz-column-count: 3 !important;
            column-count: 3 !important;
        }
    }

    @media (min-width: 1200px) {
        body.preview-mode .portfolio-columns {
            -webkit-column-count: 4 !important;
            -moz-column-count: 4 !important;
            column-count: 4 !important;
        }
    }/* Portfolio filter clickable area */
#portfolioFilters li,
#portfolioFilters li a,
#portfolioFilters li a * {
    cursor: pointer !important;
}

#portfolioFilters li a {
    display: inline-block !important;
    padding: 10px 14px !important;
}

/* Keep filters clickable and avoid hover transform hiding text */
#portfolioFilters li,
#portfolioFilters li a,
#portfolioFilters li a * {
    pointer-events: auto !important;
}

#portfolioFilters li:hover a {
    transform: none !important;
}

#portfolioFilters a::before,
#portfolioFilters a::after {
    content: none !important;
}

/* Hover + active color */
#portfolioFilters a:hover,
#portfolioFilters li.active a,
#portfolioFilters li.active a:link,
#portfolioFilters li.active a:visited,
#portfolioFilters li.active a:hover,
#portfolioFilters li.active a:focus {
    color: #16a34a !important;
    opacity: 1 !important;
    visibility: visible !important;
    -webkit-text-fill-color: #16a34a !important;
    background: transparent !important;
    transform: none !important;
}

    .js-admin-form {
        cursor: pointer;
    }

    .filter-wrap .js-admin-form {
        display: inline-flex;
        align-items: center;
        gap: 6px;
        padding: 6px 10px;
        border-radius: 12px;
        background: #2b6cb0;
        color: #fff;
        font-size: 12px;
        text-decoration: none;
        line-height: 1;
        box-sizing: border-box;
    }

    .admin-edit-btn {
        cursor: pointer;
        line-height: 1;
        white-space: nowrap;
        box-sizing: border-box;
        min-height: 28px;
        display: inline-flex;
        align-items: center;
        gap: 6px;
        padding: 6px 10px;
        border-radius: 16px;
        background: #2b6cb0;
        color: #fff;
        font-size: 12px;
        text-decoration: none;
    }
/* Portfolio filter: keep text visible at all times */
#portfolioFilters a {
  color: #0f172a !important;
  opacity: 1 !important;
  visibility: visible !important;
  -webkit-text-fill-color: #0f172a !important;
}

/* Homepage: overlap service cards over hero */
.home-hero-wrapper {
    position: relative;
    z-index: 1;
    overflow: visible;
}

.home-special-cards {
    position: relative;
    z-index: 5;
    margin-top: 40px;
    padding-top: 100px;
}

@media (max-width: 991px) {
    .home-special-cards {
        margin-top: -50px;
        padding-top: 50px;
    }
}

@media (max-width: 768px) {
    .home-special-cards {
        margin-top: 20px;
        padding-top: 0;
    }
}

/* Keep edit buttons clickable in edit mode */
.edit-mode .home-special-cards,
.edit-mode .service-card {
    z-index: 6;
    pointer-events: auto;
}

.home-work-area__map-card{
    background:#000;
    min-height:360px;
    display:flex;
    flex-direction:column;
    overflow:hidden;
}

.home-work-area__map-image{
    background-image:url('../images/backgrounds/bg-map2.png');
    background-size:cover;
    background-position:center;
    background-repeat:no-repeat;
    height:250px;
    width:100%;
}

.home-work-area__map-caption{
    background:#000;
    color:#fff;
    padding:22px 24px 24px;
    flex:1;
    display:flex;
    flex-direction:column;
    justify-content:flex-start;
}

.home-work-area__map-caption h4{
    color:#fff;
    margin:0 0 8px;
    font-size:32px;
    line-height:1.2;
    font-weight:700;
}

.home-work-area__map-caption p{
    margin:0;
    color:#fff;
    font-size:18px;
    line-height:1.5;
}

/* Quote modal polish */
#quote-modal .quote-modal-panel {
    width: min(680px, 94vw);
    border-radius: 12px;
    box-shadow: 0 24px 70px rgba(0, 0, 0, 0.34);
}

#quote-modal .quote-modal-header {
    padding: 18px 22px 14px;
    border-bottom: 1px solid #e8ecef;
}

#quote-modal .quote-modal-header .d-flex {
    gap: 16px;
}

#quote-modal #quote-modal-title {
    color: #111827;
    font-size: 24px;
    line-height: 1.2;
    font-weight: 700;
}

#quote-modal [data-close-quote].btn-link {
    color: #4b5563;
    font-weight: 600;
    text-decoration: none;
}

#quote-modal [data-close-quote].btn-link:hover,
#quote-modal [data-close-quote].btn-link:focus {
    color: #00b050;
    text-decoration: none;
}

#quote-modal .quote-modal-body {
    padding: 18px 22px 20px;
}

#quote-modal .quote-grid {
    gap: 12px 14px;
}

#quote-modal .quote-field {
    margin-bottom: 14px;
}

#quote-modal .quote-field label {
    margin-bottom: 7px;
    color: #111827;
    font-size: 13px;
    line-height: 1.35;
    font-weight: 700;
}

#quote-modal .quote-field input:not([type="checkbox"]),
#quote-modal .quote-field textarea {
    min-height: 44px;
    padding: 10px 12px;
    border: 1px solid #d7dde3;
    border-radius: 8px;
    color: #111827;
    box-shadow: none;
    transition: border-color 0.18s ease, box-shadow 0.18s ease;
}

#quote-modal .quote-field textarea {
    min-height: 108px;
    resize: vertical;
}

#quote-modal .quote-field input:not([type="checkbox"]):focus,
#quote-modal .quote-field textarea:focus {
    border-color: #00b050;
    outline: 0;
    box-shadow: 0 0 0 3px rgba(0, 176, 80, 0.14);
}

#quote-modal .quote-services {
    gap: 9px;
    margin-top: 2px;
}

#quote-modal .quote-services label {
    min-height: 40px;
    margin: 0;
    padding: 8px 13px;
    border: 1px solid #d7dde3;
    border-radius: 999px;
    background: #f9fafb;
    color: #111827;
    font-size: 13px;
    line-height: 1.25;
    font-weight: 600;
    cursor: pointer;
    transition: background-color 0.18s ease, border-color 0.18s ease, color 0.18s ease, box-shadow 0.18s ease;
}

#quote-modal .quote-services label:hover,
#quote-modal .quote-services label:focus-within {
    border-color: #00b050;
    background: #f0fff6;
    box-shadow: 0 0 0 3px rgba(0, 176, 80, 0.1);
}

#quote-modal .quote-services label:has(input[type="checkbox"]:checked) {
    border-color: #00b050;
    background: #00b050;
    color: #fff;
}

#quote-modal input[type="checkbox"] {
    width: 16px;
    height: 16px;
    margin: 0;
    opacity: 1;
    appearance: auto;
    -webkit-appearance: auto;
    accent-color: #00b050;
    flex: 0 0 auto;
}

#quote-modal .quote-services label:has(input[type="checkbox"]:checked) input[type="checkbox"] {
    accent-color: #fff;
}

#quote-modal .quote-grid:has(#quote-date) {
    grid-template-columns: 1fr;
    gap: 0;
}

#quote-modal .quote-grid:has(#quote-date) .quote-field label:has(input[type="checkbox"]) {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    min-height: 42px;
    margin: 0;
    padding: 10px 12px;
    border: 1px solid #d7dde3;
    border-radius: 8px;
    background: #f9fafb;
    color: #111827;
    font-size: 13px;
    font-weight: 600;
}

#quote-modal .quote-grid:has(#quote-date) .quote-field label:has(input[type="checkbox"]:checked) {
    border-color: #00b050;
    background: #f0fff6;
}

#quote-modal .quote-modal-footer {
    padding: 14px 22px 18px;
    border-top: 1px solid #e8ecef;
    gap: 12px;
}

#quote-modal .quote-modal-footer .btn {
    min-height: 42px;
    padding: 10px 18px;
    border-radius: 6px;
    font-weight: 700;
}

#quote-modal .quote-modal-footer .btn-secondary {
    border: 1px solid #d7dde3;
    background: #fff;
    color: #374151;
}

#quote-modal .quote-modal-footer .btn-secondary:hover,
#quote-modal .quote-modal-footer .btn-secondary:focus {
    border-color: #b8c0c8;
    background: #f6f7f8;
    color: #111827;
}

#quote-modal .quote-modal-footer .site-button {
    background: #00b050;
    border-color: #00b050;
    color: #fff;
}

@media (max-width: 767px) {
    #quote-modal {
        padding: 14px;
    }

    #quote-modal .quote-modal-header,
    #quote-modal .quote-modal-body,
    #quote-modal .quote-modal-footer {
        padding-left: 16px;
        padding-right: 16px;
    }

    #quote-modal .quote-modal-footer {
        flex-direction: column-reverse;
        align-items: stretch;
    }

    #quote-modal .quote-modal-footer .btn {
        width: 100%;
    }
}
