/*
====================================
SERVICE PAGE
====================================
*/

.service-hero{

}

.breadcrumbs{

}

.service-content{

}

.why-us{

}

.steps-section{

}

.gallery-section{

}

.pricing-section{

}

.coverage-section{

}

.faq-section{

}

.keywords-section{

}

.related-services{

}

.related-posts{

}

.contact-box{

}

.cta-box{

}
/*
====================================
COVERAGE
====================================
*/

.coverage-section{
    padding:90px 0;
    background:var(--light-color);
}

.coverage-heading{
    max-width:820px;
    margin:0 auto 42px;
    text-align:center;
}

.coverage-heading .section-title{
    margin-bottom:14px;
}

.coverage-description{
    color:var(--text-color);
    max-width:760px;
    margin:0 auto;
}

.coverage-description p:last-child,
.coverage-card-any-content p:last-child{
    margin-bottom:0;
}

.coverage-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:22px;
}

.coverage-card{
    min-height:250px;
    padding:28px 24px;
    background:var(--white-color);
    border:1px solid var(--border-color);
    border-radius:var(--border-radius);
    box-shadow:var(--box-shadow);
    transition:transform var(--transition),box-shadow var(--transition),border-color var(--transition);
}

.coverage-card:hover{
    transform:translateY(-4px);
    box-shadow:0 12px 28px rgba(0,0,0,.10);
    border-color:var(--secondary-color);
}

.coverage-card-icon{
    width:52px;
    height:52px;
    display:flex;
    align-items:center;
    justify-content:center;
    margin-bottom:18px;
    border-radius:14px;
    background:var(--primary-color);
    color:var(--white-color);
}

.coverage-card-icon .dashicons{
    width:26px;
    height:26px;
    font-size:26px;
}

.coverage-card-title{
    margin-bottom:16px;
    font-size:22px;
}

.coverage-neighborhoods{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}

.coverage-neighborhood{
    display:inline-flex;
    align-items:center;
    min-height:34px;
    padding:4px 11px;
    border:1px solid var(--border-color);
    border-radius:999px;
    background:var(--light-color);
    color:var(--text-color);
    font-size:14px;
    line-height:1.5;
}

.coverage-card-any{
    background:var(--primary-color);
    border-color:var(--primary-color);
}

.coverage-card-any .coverage-card-icon{
    background:var(--secondary-color);
}

.coverage-card-any .coverage-card-title,
.coverage-card-any .coverage-card-any-content,
.coverage-card-any .coverage-card-any-content p{
    color:var(--white-color);
}

/* RELATED SEARCH TERMS */
.related-search-terms{
    padding:80px 0;
    background:var(--white-color);
}

.related-search-terms .section-heading{
    max-width:820px;
    margin:0 auto 30px;
    text-align:center;
}

.related-search-terms-list{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:12px;
    max-width:1000px;
    margin:0 auto;
}

.related-search-term{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:44px;
    padding:9px 18px;
    border:1px solid var(--border-color);
    border-radius:999px;
    background:var(--light-color);
    color:var(--text-color);
    font-size:15px;
    line-height:1.5;
    text-decoration:none;
    transition:transform var(--transition),background var(--transition),border-color var(--transition),color var(--transition),box-shadow var(--transition);
}

.related-search-term:hover{
    transform:translateY(-2px);
    background:var(--primary-color);
    border-color:var(--primary-color);
    color:var(--white-color);
    box-shadow:0 8px 20px rgba(0,0,0,.08);
}


/* FAQ */
.faq-section{
    padding:90px 0;
    background:var(--white-color);
}

.faq-heading{
    max-width:820px;
    margin:0 auto 40px;
    text-align:center;
}

.faq-description{
    max-width:760px;
    margin:14px auto 0;
    color:var(--text-color);
}

.faq-list{
    max-width:900px;
    margin:0 auto;
    display:flex;
    flex-direction:column;
    gap:12px;
}

.faq-item{
    overflow:hidden;
    border:1px solid var(--border-color);
    border-radius:var(--border-radius);
    background:var(--white-color);
    box-shadow:0 4px 18px rgba(0,0,0,.05);
}

.faq-question{
    position:relative;
    width:100%;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    padding:22px 24px;
    border:0;
    background:transparent;
    color:var(--heading-color);
    text-align:right;
    font:inherit;
    font-weight:700;
    line-height:1.6;
    cursor:pointer;
}

.faq-question::after{
    content:'+';
    flex:0 0 auto;
    display:flex;
    align-items:center;
    justify-content:center;
    width:30px;
    height:30px;
    border-radius:50%;
    background:var(--light-color);
    color:var(--primary-color);
    font-size:20px;
    font-weight:400;
    transition:transform var(--transition),background var(--transition),color var(--transition);
}

.faq-item.active .faq-question::after{
    content:'−';
    background:var(--primary-color);
    color:var(--white-color);
}

.faq-answer{
    display:grid;
    grid-template-rows:0fr;
    transition:grid-template-rows .25s ease;
}

.faq-answer > *{
    overflow:hidden;
    min-height:0;
    margin:0;
    padding:0 24px;
    color:var(--text-color);
    line-height:1.9;
}

.faq-answer p:last-child{margin-bottom:24px}

.faq-item.active .faq-answer{grid-template-rows:1fr}

.faq-answer a{color:var(--primary-color);text-decoration:underline}

@media (max-width:782px){
    .faq-section{padding:65px 0}
    .faq-question{padding:18px 16px;font-size:16px}
    .faq-question::after{width:28px;height:28px;font-size:18px}
    .faq-answer > *{padding:0 16px}
}

/*
====================================
GALLERY
====================================
*/
.service-gallery{
    padding:90px 0;
    background:var(--light-color);
}

.gallery-heading{
    max-width:820px;
    margin:0 auto 36px;
    text-align:center;
}

.gallery-heading .section-title{margin-bottom:14px}

.gallery-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:18px;
}

.gallery-item{
    position:relative;
    margin:0;
    overflow:hidden;
    aspect-ratio:4/3;
    border:1px solid var(--border-color);
    border-radius:var(--border-radius);
    background:var(--white-color);
    box-shadow:var(--box-shadow);
}

.gallery-link{
    position:relative;
    display:block;
    width:100%;
    height:100%;
    cursor:zoom-in;
}

.gallery-image{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .45s ease;
}

.gallery-link:hover .gallery-image,
.gallery-link:focus-visible .gallery-image{
    transform:scale(1.04);
}

.gallery-overlay{
    position:absolute;
    inset:0;
    display:flex;
    align-items:center;
    justify-content:center;
    background:rgba(0,0,0,.18);
    opacity:0;
    transition:opacity var(--transition);
}

.gallery-link:hover .gallery-overlay,
.gallery-link:focus-visible .gallery-overlay{
    opacity:1;
}

.gallery-overlay-icon{
    display:flex;
    align-items:center;
    justify-content:center;
    width:52px;
    height:52px;
    border-radius:50%;
    background:rgba(255,255,255,.94);
    color:var(--primary-color);
    font-size:30px;
    font-weight:300;
    line-height:1;
}

.lsf-lightbox{
    position:fixed;
    inset:0;
    z-index:99999;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:30px;
    background:rgba(0,0,0,.92);
}

.lsf-lightbox[hidden]{display:none}

.lsf-lightbox-stage{
    position:relative;
    max-width:min(1200px,88vw);
    max-height:88vh;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
}

.lsf-lightbox-image{
    display:block;
    max-width:100%;
    max-height:78vh;
    width:auto;
    height:auto;
    object-fit:contain;
    border-radius:8px;
    box-shadow:0 20px 60px rgba(0,0,0,.35);
}

.lsf-lightbox-counter{
    margin-top:14px;
    color:#fff;
    font-size:14px;
}

.lsf-lightbox-close,
.lsf-lightbox-prev,
.lsf-lightbox-next{
    position:absolute;
    z-index:2;
    width:48px;
    height:48px;
    display:flex;
    align-items:center;
    justify-content:center;
    border:1px solid rgba(255,255,255,.22);
    border-radius:50%;
    background:rgba(0,0,0,.36);
    color:#fff;
    font:inherit;
    font-size:32px;
    line-height:1;
    cursor:pointer;
    transition:background .2s ease,transform .2s ease;
}

.lsf-lightbox-close:hover,
.lsf-lightbox-prev:hover,
.lsf-lightbox-next:hover{
    background:rgba(255,255,255,.16);
}

.lsf-lightbox-close{top:24px;right:24px;font-size:30px}
.lsf-lightbox-prev{left:24px;top:50%;transform:translateY(-50%)}
.lsf-lightbox-next{right:24px;top:50%;transform:translateY(-50%)}

@media (max-width:900px){
    .gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .lsf-lightbox-stage{max-width:92vw}
    .lsf-lightbox-image{max-height:72vh}
}

@media (max-width:600px){
    .service-gallery{padding:65px 0}
    .gallery-grid{grid-template-columns:1fr;gap:14px}
    .gallery-item{aspect-ratio:1/1}
    .lsf-lightbox{padding:18px}
    .lsf-lightbox-stage{max-width:100%;max-height:82vh}
    .lsf-lightbox-image{max-width:100%;max-height:70vh}
    .lsf-lightbox-close{top:12px;right:12px}
    .lsf-lightbox-prev{left:10px}
    .lsf-lightbox-next{right:10px}
}
html.lsf-lightbox-open{overflow:hidden}

/*
====================================
SERVICE HERO
====================================
*/

.service-hero{
    position:relative;
    padding:28px 0 92px;
    background:var(--primary-color);
    color:var(--white-color);
    overflow:hidden;
}

.service-hero::before{
    content:'';
    position:absolute;
    inset:0;
    pointer-events:none;
    background:
        radial-gradient(circle at 12% 18%,rgba(255,255,255,.08),transparent 32%),
        radial-gradient(circle at 90% 80%,rgba(255,255,255,.05),transparent 30%);
}

.service-hero .container{
    position:relative;
    z-index:1;
}

.hero-inner{
    max-width:900px;
    margin:0 auto;
    text-align:center;
}

.service-hero .lsf-breadcrumbs{
    margin-bottom:34px;
}

.service-hero .lsf-breadcrumbs ul{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    align-items:center;
    gap:8px;
    margin:0;
    padding:0;
    list-style:none;
    color:rgba(255,255,255,.78);
    font-size:14px;
}

.service-hero .lsf-breadcrumbs li{
    display:inline-flex;
    align-items:center;
}

.service-hero .lsf-breadcrumbs li:not(:last-child)::after{
    content:'←';
    margin-inline-start:8px;
    color:rgba(255,255,255,.45);
}

.service-hero .lsf-breadcrumbs a{
    color:rgba(255,255,255,.82);
    text-decoration:none;
    transition:color var(--transition);
}

.service-hero .lsf-breadcrumbs a:hover{
    color:var(--white-color);
}

.hero-content h1{
    max-width:850px;
    margin:0 auto;
    color:var(--white-color);
    font-size:clamp(34px,5vw,58px);
    line-height:1.25;
    font-weight:800;
    letter-spacing:-.02em;
}

.hero-description{
    max-width:760px;
    margin:24px auto 0;
    color:rgba(255,255,255,.88);
    font-size:18px;
    line-height:1.9;
}

.hero-description p:last-child{
    margin-bottom:0;
}

.hero-buttons{
    display:flex;
    justify-content:center;
    flex-wrap:wrap;
    gap:14px;
    margin-top:32px;
}

.hero-button{
    min-width:170px;
    min-height:52px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:12px 24px;
    border:2px solid transparent;
    border-radius:999px;
    text-decoration:none;
    font-weight:700;
    transition:transform var(--transition),background var(--transition),color var(--transition),border-color var(--transition),box-shadow var(--transition);
}

.hero-button:hover{
    transform:translateY(-2px);
}

.hero-phone-btn{
    background:var(--secondary-color);
    border-color:var(--secondary-color);
    color:var(--white-color);
    box-shadow:0 10px 24px rgba(0,0,0,.14);
}

.hero-phone-btn:hover{
    background:var(--white-color);
    border-color:var(--white-color);
    color:var(--primary-color);
}

.hero-whatsapp-btn{
    background:transparent;
    border-color:rgba(255,255,255,.7);
    color:var(--white-color);
}

.hero-whatsapp-btn:hover{
    background:var(--white-color);
    border-color:var(--white-color);
    color:var(--primary-color);
}

@media (max-width:768px){
    .service-hero{
        padding:22px 0 68px;
    }

    .service-hero .lsf-breadcrumbs{
        margin-bottom:26px;
    }

    .service-hero .lsf-breadcrumbs ul{
        font-size:13px;
        line-height:1.7;
    }

    .hero-description{
        font-size:16px;
        line-height:1.8;
    }

    .hero-buttons{
        margin-top:26px;
    }

    .hero-button{
        width:100%;
    }
}

/*
====================================
LSF ITEMS / SERVICE CARDS
====================================
*/

.lsf-items-section{
    padding:90px 0;
    background:var(--white-color);
}

.lsf-items-section:nth-of-type(even){
    background:var(--light-color);
}

.lsf-items-section .section-title{
    margin-bottom:14px;
    text-align:center;
}

.lsf-items-section .section-description{
    max-width:820px;
    margin:0 auto 36px;
    color:var(--text-color);
    text-align:center;
}

.lsf-items-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:24px;
}

.lsf-item-card{
    display:flex;
    flex-direction:column;
    height:100%;
    overflow:hidden;
    background:var(--white-color);
    border:1px solid var(--border-color);
    border-radius:var(--border-radius);
    box-shadow:var(--box-shadow);
    transition:transform var(--transition),box-shadow var(--transition),border-color var(--transition);
}

.lsf-item-card:hover{
    transform:translateY(-5px);
    border-color:var(--secondary-color);
    box-shadow:0 14px 32px rgba(0,0,0,.10);
}

.lsf-item-card-image{
    aspect-ratio:16 / 10;
    overflow:hidden;
    background:var(--light-color);
}

.lsf-item-card-image img{
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .4s ease;
}

.lsf-item-card:hover .lsf-item-card-image img{
    transform:scale(1.035);
}

.lsf-item-card-body{
    display:flex;
    flex:1;
    flex-direction:column;
    padding:24px;
}

.lsf-item-card-body h3{
    margin-bottom:12px;
    font-size:22px;
}

.lsf-item-card-description{
    color:var(--text-color);
    line-height:1.85;
}

.lsf-item-card-description p:last-child{
    margin-bottom:0;
}

.lsf-item-card-link{
    align-self:flex-start;
    margin-top:auto;
    padding-top:18px;
    color:var(--primary-color);
    font-weight:700;
}

.lsf-item-card-link:hover{
    color:var(--secondary-color);
}

@media (max-width:992px){
    .lsf-items-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media (max-width:768px){
    .lsf-items-section{
        padding:70px 0;
    }

    .lsf-items-grid{
        grid-template-columns:1fr;
    }

    .lsf-item-card-body{
        padding:20px;
    }
}


/* ====================================
   RELATED SERVICES / INTERNAL LINKING
   ==================================== */
.related-services-section{
    padding:90px 0;
    background:var(--light-color);
}
.related-services-heading{
    max-width:820px;
    margin:0 auto 36px;
    text-align:center;
}
.related-services-description{
    margin-top:12px;
    color:var(--text-color);
}
.related-services-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:24px;
}
.related-service-card{
    overflow:hidden;
    display:flex;
    flex-direction:column;
    min-width:0;
    border:1px solid var(--border-color);
    border-radius:var(--border-radius);
    background:var(--white-color);
    box-shadow:var(--box-shadow);
    transition:transform var(--transition),box-shadow var(--transition),border-color var(--transition);
}
.related-service-card:hover{
    transform:translateY(-5px);
    border-color:var(--secondary-color);
    box-shadow:0 14px 30px rgba(0,0,0,.10);
}
.related-service-card-media{
    display:block;
    aspect-ratio:16/9;
    overflow:hidden;
    background:var(--light-color);
}
.related-service-card-media img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
    transition:transform var(--transition);
}
.related-service-card:hover .related-service-card-media img{
    transform:scale(1.04);
}
.related-service-card-placeholder{
    width:100%;
    height:100%;
    display:flex;
    align-items:center;
    justify-content:center;
    color:var(--primary-color);
}
.related-service-card-placeholder .dashicons{
    width:44px;
    height:44px;
    font-size:44px;
}
.related-service-card-body{
    display:flex;
    flex-direction:column;
    flex:1;
    padding:24px;
}
.related-service-card-title{
    margin:0;
    font-size:21px;
    line-height:1.5;
}
.related-service-card-title a{
    color:var(--heading-color);
    text-decoration:none;
}
.related-service-card-excerpt{
    margin:12px 0 20px;
    color:var(--text-color);
    line-height:1.8;
}
.related-service-card-link{
    margin-top:auto;
    display:inline-flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    color:var(--primary-color);
    font-weight:700;
    text-decoration:none;
}
.related-service-card-link:hover{text-decoration:underline}

/* ====================================
   CONTACT BOX
   ==================================== */
.contact-box-section{
    padding:84px 0;
    background:var(--white-color);
}
.contact-box{
    display:grid;
    grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);
    gap:34px;
    padding:42px;
    border-radius:22px;
    background:var(--primary-color);
    color:var(--white-color);
    box-shadow:0 18px 45px rgba(0,0,0,.12);
}
.contact-box-eyebrow{
    margin:0 0 8px;
    color:var(--secondary-color);
    font-weight:700;
}
.contact-box-main h2{
    margin:0 0 14px;
    color:var(--white-color);
    font-size:32px;
    line-height:1.35;
}
.contact-box-text{
    max-width:700px;
    margin:0;
    color:rgba(255,255,255,.82);
    line-height:1.9;
}
.contact-box-actions{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    margin-top:26px;
}
.contact-box-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:48px;
    padding:10px 20px;
    border-radius:10px;
    font-weight:700;
    text-decoration:none;
}
.contact-box-phone{
    background:var(--white-color);
    color:var(--primary-color);
}
.contact-box-whatsapp{
    background:var(--secondary-color);
    color:#111827;
}
.contact-box-details{
    display:grid;
    align-content:start;
    gap:0;
    padding:8px 0 8px 24px;
    border-inline-start:1px solid rgba(255,255,255,.18);
}
.contact-box-detail{
    padding:14px 0;
    border-bottom:1px solid rgba(255,255,255,.12);
}
.contact-box-detail-label{
    display:block;
    margin-bottom:5px;
    color:rgba(255,255,255,.62);
    font-size:13px;
}
.contact-box-detail a,
.contact-box-detail span:not(.contact-box-detail-label){
    color:var(--white-color);
    text-decoration:none;
    line-height:1.7;
}
.contact-box-map-link{
    display:inline-flex;
    align-self:start;
    margin-top:18px;
    color:var(--white-color);
    font-weight:700;
    text-decoration:underline;
}

@media (max-width:980px){
    .related-services-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .contact-box{grid-template-columns:1fr}
    .contact-box-details{padding:20px 0 0;border-inline-start:0;border-top:1px solid rgba(255,255,255,.18)}
}
@media (max-width:640px){
    .related-services-section,.contact-box-section{padding:64px 0}
    .related-services-grid{grid-template-columns:1fr}
    .contact-box{padding:28px 20px;border-radius:18px}
    .contact-box-main h2{font-size:27px}
    .contact-box-actions{flex-direction:column}
    .contact-box-btn{width:100%}
}

/* =========================================================
   COVERAGE RESPONSIVE HARDENING
   ========================================================= */
.coverage-grid { align-items: stretch; }
.coverage-card { min-width: 0; overflow: hidden; }
.coverage-neighborhoods { min-width: 0; align-items: flex-start; }
.coverage-neighborhood { max-width: 100%; overflow-wrap: anywhere; white-space: normal; text-align: right; }

@media (max-width: 1100px) {
    .coverage-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
}

@media (max-width: 700px) {
    .coverage-grid { grid-template-columns: 1fr; gap: 16px; }
    .coverage-card { padding: 22px 18px; border-radius: 18px; }
    .coverage-card-icon { width: 48px; height: 48px; margin-bottom: 14px; }
    .coverage-card-title { font-size: 20px; }
    .coverage-neighborhood { min-height: 32px; padding: 5px 10px; font-size: 13px; }
}

@media (max-width: 390px) {
    .coverage-card { padding: 18px 15px; }
    .coverage-neighborhoods { gap: 6px; }
    .coverage-neighborhood { width: auto; max-width: 100%; font-size: 12px; }
}

/* =========================================================
   SERVICE PAGE COMPOSITION — POLISHED RHYTHM
   ========================================================= */
.service-page > section:not(.service-hero) {
    scroll-margin-top: 90px;
}

.service-page > .lsf-standard-section,
.service-page > .lsf-items-section,
.service-page > .service-gallery,
.service-page > .coverage-section,
.service-page > .faq-section,
.service-page > .related-search-terms,
.service-page > .related-services-section,
.service-page > .contact-box-section {
    position: relative;
}

.service-page .lsf-standard-section .section-content {
    border-radius: 24px;
    box-shadow: var(--lsf-shadow-sm);
}

.service-page .lsf-items-section .section-title,
.service-page .coverage-heading .section-title,
.service-page .gallery-heading .section-title,
.service-page .faq-heading .section-title,
.service-page .related-services-heading .section-title,
.service-page .related-search-terms .section-title {
    font-size: clamp(27px, 3vw, 38px);
    line-height: 1.35;
}

.service-page .lsf-items-section .section-description,
.service-page .coverage-description,
.service-page .gallery-heading .section-description,
.service-page .faq-description,
.service-page .related-services-description {
    line-height: 2;
}

.service-page .lsf-items-grid {
    gap: 22px;
}

.service-page .lsf-item-card {
    border-radius: 22px;
}

.service-page .lsf-item-card-body {
    padding: 25px 23px 24px;
}

.service-page .coverage-section,
.service-page .service-gallery,
.service-page .related-services-section,
.service-page .faq-section,
.service-page .related-search-terms {
    padding-block: clamp(72px, 7vw, 106px);
}

@media (max-width: 700px) {
    .service-page .lsf-items-section .section-title,
    .service-page .coverage-heading .section-title,
    .service-page .gallery-heading .section-title,
    .service-page .faq-heading .section-title,
    .service-page .related-services-heading .section-title,
    .service-page .related-search-terms .section-title {
        font-size: 25px;
    }
    .service-page .lsf-item-card {
        border-radius: 18px;
    }
    .service-page .lsf-item-card-body {
        padding: 20px 18px;
    }
    .service-page .coverage-section,
    .service-page .service-gallery,
    .service-page .related-services-section,
    .service-page .faq-section,
    .service-page .related-search-terms {
        padding-block: 64px;
    }
}

/* -------------------------------------------------------------------------
 * Related Projects
 * ------------------------------------------------------------------------- */
.related-projects-section{margin-top:var(--section-spacing, 4rem)}
.related-projects-heading{margin-bottom:2rem}
.related-projects-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem}
.related-project-card{min-width:0}
.related-project-card-link{display:flex;flex-direction:column;height:100%;overflow:hidden;background:var(--surface,#fff);border:1px solid var(--border-color,#e5e7eb);border-radius:var(--radius-lg,18px);box-shadow:var(--shadow-sm,0 10px 30px rgba(15,23,42,.08));text-decoration:none;color:inherit;transition:transform .2s ease,box-shadow .2s ease}
.related-project-card-link:hover{transform:translateY(-3px);box-shadow:var(--shadow-md,0 16px 34px rgba(15,23,42,.12))}
.related-project-card-media{aspect-ratio:1/1;overflow:hidden;background:var(--surface-muted,#f8fafc)}
.related-project-card-media img{display:block;width:100%;height:100%;object-fit:cover}
.related-project-card-placeholder{width:100%;height:100%;background:linear-gradient(135deg,#f8fafc,#e2e8f0)}
.related-project-card-body{display:flex;flex-direction:column;gap:.5rem;padding:1.25rem}
.related-project-card-body h3{margin:0;font-size:1.15rem;line-height:1.5;color:var(--heading-color,#0f172a)}
.related-project-card-location,.related-project-card-excerpt{margin:0;color:var(--text-color,#475569);line-height:1.8}
.related-project-card-more{margin-top:auto;padding-top:.5rem;color:var(--primary-color,#1e3a8a);font-weight:700}
@media (max-width: 1099px){
  .related-projects-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width: 767px){
  .related-projects-section{margin-top:var(--section-spacing-mobile, 2.75rem)}
  .related-projects-grid{grid-template-columns:1fr;gap:1rem}
  .related-project-card-body{padding:1rem}
}

.related-projects-empty .related-projects-heading{max-width:760px;margin-inline:auto;text-align:center}.related-projects-empty .related-projects-heading p{margin:0;line-height:2;color:var(--text-color,#475569)}
