/* Sola.solar-projects-grid.columns-3 {
    grid-template-columns: repeat(3, 1fr);
}

.solar-projects-grid.columns-2 {
    grid-template-columns: repeat(2, 1fr);
}

.solar-projects-grid.columns-4 {
    grid-template-columns: repeat(4, 1fr);
}

/* Solar Grid Styles */
.solar-projects-grid.spm-list {
    display: grid;
    gap: 20px;
    margin: 30px 0;
    justify-content: center;
}

.solar-projects-grid.spm-list.columns-3 {
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
}

.solar-projects-grid.spm-list.columns-2 {
    grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
}

.solar-projects-grid.spm-list.columns-4 {
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}

/* Individual Project Card */
.solar-projects-grid.spm-list .solar-project-card.spm-card {
    background: #ffffff;
    border: none;
    border-radius: 0;
    box-shadow: none;
    overflow: hidden;
    transition: none;
    width: 100%;
    max-width: 400px;
    height: 100%;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
}

.solar-project-card:hover {
    transform: none;
    box-shadow: none;
}

/* Project Image */
.solar-projects-grid.spm-list .project-image.spm-card-image {
    position: relative;
    aspect-ratio: 4 / 3; /* target 4:3 container */
    width: 100% !important;
    overflow: hidden;
    background: #eef2f5;
    min-height: 0;
    display: block; /* fix flex/image shifts */
    line-height: 0; /* remove inline-gap around images */
}

.solar-projects-grid.spm-list .project-image.spm-card-image img.project-img.spm-card-img {
        position: absolute !important;
        inset: 0 !important; /* top:0;right:0;bottom:0;left:0 */
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
        object-position: center !important;
        display: block !important;
        border-radius: 0 !important;
        max-width: 100% !important;
        max-height: 100% !important;
}

/* Aspect-ratio fallback for older browsers */
@supports not (aspect-ratio: 1 / 1) {
    .solar-projects-grid.spm-list .project-image.spm-card-image { height: 0; padding-top: 75%; }
    .solar-projects-grid.spm-list .project-image.spm-card-image img.project-img.spm-card-img { position: absolute; inset: 0; }
}

.solar-projects-grid.spm-list .project-image-fallback.spm-card-fallback {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #dbe8f3 0%, #f1f5f9 100%);
    color: #0D2B52;
    font-size: 42px;
    position: absolute;
    top: 0;
    left: 0;
    box-sizing: border-box;
}

.fallback-icon {
    display: block;
    line-height: 1;
}

/* Project Badges */
.solar-projects-grid.spm-list .project-badges.spm-card-badges {
    position: absolute;
    top: 12px;
    left: 12px;
    right: 12px;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
}

.solar-projects-grid.spm-list .status-badge.spm-status-badge {
    /* Base badge layout only; colors set by status variations */
    padding: 6px 16px;
    border-radius: 28px;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    line-height: 1;
    display: inline-flex;
    align-items: center;
}

/* Scoped status colors (override any theme defaults) */
.solar-projects-grid.spm-list .status-badge.spm-status-badge.agreement-signed { background:#059669 !important; color:#fff !important; }
.solar-projects-grid.spm-list .status-badge.spm-status-badge.under-construction { background:#059669 !important; color:#fff !important; }
.solar-projects-grid.spm-list .status-badge.spm-status-badge.generating-returns { background:#059669 !important; color:#fff !important; }
.solar-projects-grid.spm-list .status-badge.spm-status-badge.plant-sold { background:#ff928e !important; color:#fff !important; }

.status-badge.agreement-signed {
    background: #059669;
    color: white;
}

.status-badge.under-construction {
    background: #059669;
    color: white;
}

.status-badge.generating-returns {
    background: #059669;
    color: white;
}

.status-badge.plant-sold,
.solar-projects-grid .status-badge.plant-sold {
    background: #ff928e !important;
    color: #fff !important;
}

.solar-projects-grid.spm-list .capacity-badge.spm-capacity-badge {
    background: #ffffff;
    color: #0D2B52;
    padding: 6px 16px;
    border-radius: 28px;
    font-size: 11px;
    font-weight: 600;
    line-height: 1;
    display: inline-flex;
    align-items: center;
}

/* Project Content */
.solar-projects-grid.spm-list .project-content.spm-card-content {
    padding: 24px 24px 26px 24px;
    background: #F8F8F8;
    flex: 1;
    display: flex;
    flex-direction: column;
    min-height: 120px;
}

.spm-solar-project-title {
    font-size: 18px !important;
    font-weight: 700 !important;
    color: #1f2937 !important;
    margin: 0 0 4px 0 !important;
    line-height: 1.3 !important;
    height: 48px !important;
    overflow: hidden !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    font-family: inherit !important;
    text-decoration: none !important;
}

/* Scoped location block to avoid theme collisions placing it above image */
.spm-location {
    display: flex;
    align-items: center;
    gap: 6px;
    color: #0D2B52;
    font-size: 13px;
    margin: 0 0 24px 0;
    font-weight: 500;
    line-height: 1.4;
}
.spm-location-pin svg { display:block; }
.spm-location-text { display:inline-block; }

/* Remove legacy classes if present */
.location-pin, .location-text { display:none !important; }

/* Project Details */
.solar-projects-grid.spm-list .project-details.spm-card-details {
    margin-bottom: 20px;
}

.detail-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 0;
    margin-bottom: 4px;
    border-bottom: 1px solid #f3f4f6;
}

.detail-row:last-child {
    border-bottom: none;
}

.detail-row .label {
    font-size: 13px;
    color: #6b7280;
    font-weight: 500;
}

.detail-row .value {
    font-size: 13px;
    color: #1f2937;
    font-weight: 600;
}

/* View Project Button */
.solar-projects-grid.spm-list .solar-project-card.spm-card .view-project-btn.spm-view-btn {
    display: block !important;
    width: 100% !important;
    padding: 14px 20px !important;
    background: #0D2B52 !important;
    color: #ffffff !important;
    text-decoration: none !important;
    border-radius: 0 !important;
    text-align: center !important;
    font-weight: 600 !important;
    font-size: 14px !important;
    border: none !important;
    cursor: pointer !important;
}

.solar-project-card .view-project-btn:hover,
.solar-project-card .view-project-btn:focus {
    background: #0b223f !important;
    color: #ffffff !important;
    text-decoration: none !important;
}

/* Responsive Design */
@media (max-width: 1024px) {
    .solar-projects-grid.spm-list.columns-4 {
        grid-template-columns: repeat(3, 1fr) !important;
    }
}

@media (max-width: 768px) {
    .solar-projects-grid.spm-list,
    .solar-projects-grid.spm-list.columns-2,
    .solar-projects-grid.spm-list.columns-3,
    .solar-projects-grid.spm-list.columns-4 {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 16px;
        margin: 20px 0;
    }
}

@media (max-width: 480px) {
    .solar-projects-grid.spm-list,
    .solar-projects-grid.spm-list.columns-2,
    .solar-projects-grid.spm-list.columns-3,
    .solar-projects-grid.spm-list.columns-4 {
        grid-template-columns: 1fr !important;
        gap: 20px;
        margin: 20px 0;
    }
    
    .solar-projects-grid.spm-list .solar-project-card.spm-card {
        max-width: none !important;
        width: 100% !important;
    }
    
    .solar-projects-grid.spm-list .project-content.spm-card-content {
        padding: 20px 16px;
        margin-top: 8px;
    }
    
    .smp-solar-project-title,
    .spm-solar-project-title {
        font-size: 16px !important;
        height: 42px !important;
        margin-bottom: 12px !important;
        line-height: 1.3 !important;
    }
    
    .solar-projects-grid.spm-list .project-badges.spm-card-badges {
        top: 12px;
        left: 12px;
        right: 12px;
        margin-bottom: 8px;
    }
    
    .solar-projects-grid.spm-list .status-badge.spm-status-badge {
        padding: 8px 14px;
        font-size: 10px;
        margin-bottom: 4px;
    }
    
    .solar-projects-grid.spm-list .capacity-badge.spm-capacity-badge {
        padding: 8px 14px;
        font-size: 10px;
    }
    
    .solar-projects-grid.spm-list .detail-row {
        padding: 10px 0;
        margin-bottom: 6px;
    }
    
    .solar-projects-grid.spm-list .detail-row .label,
    .solar-projects-grid.spm-list .detail-row .value {
        font-size: 12px;
        line-height: 1.4;
    }
}

@media (max-width: 480px) {
    .solar-projects-grid.spm-list .solar-project-card.spm-card {
        max-width: none !important;
        width: 100% !important;
        margin: 0 !important;
    }
    
    .solar-projects-grid.spm-list .project-content.spm-card-content {
        padding: 18px 16px;
        width: 100%;
        box-sizing: border-box;
        min-height: 120px;
    }
    
    .smp-solar-project-title,
    .spm-solar-project-title {
        font-size: 15px !important;
        margin-bottom: 12px !important;
        height: 38px !important;
        line-height: 1.3 !important;
    }
    
    .solar-projects-grid.spm-list .detail-row {
        padding: 8px 0;
        margin-bottom: 6px;
    }
    
    .solar-projects-grid.spm-list .detail-row .label,
    .solar-projects-grid.spm-list .detail-row .value {
        font-size: 12px;
        line-height: 1.4;
    }
    
    .solar-projects-grid.spm-list .view-project-btn.spm-view-btn {
        padding: 12px 16px;
        font-size: 12px;
        width: 100% !important;
        margin-top: 8px;
    }
}

/* Loading State */
.solar-projects-loading {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 200px;
    font-size: 16px;
    color: #64748b;
}

/* Empty State */
.solar-projects-empty {
    text-align: center;
    padding: 60px 20px;
    color: #64748b;
}

.solar-projects-empty h3 {
    font-size: 24px;
    margin-bottom: 10px;
    color: #1a365d;
}

/* Admin Styles */
.solar-project-admin .form-table th {
    width: 200px;
    padding: 15px 10px 15px 0;
}

.solar-project-admin .form-table td {
    padding: 15px 10px;
}

.solar-project-admin input[type="text"],
.solar-project-admin input[type="number"],
.solar-project-admin input[type="url"],
.solar-project-admin select {
    padding: 8px 12px;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-size: 14px;
}

.solar-project-admin input[type="text"]:focus,
.solar-project-admin input[type="number"]:focus,
.solar-project-admin input[type="url"]:focus,
.solar-project-admin select:focus {
    border-color: #3b82f6;
    box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
    outline: none;
}

/* Modal Styles */
/* Modal core */
:root { --spm-accent:#C30052; --spm-accent-hover:#a80047; --spm-text:#111827; --spm-green:#4CAF50; --spm-green-hover:#45a049; }
.spm-modal { position:fixed; inset:0; display:none; align-items:center; justify-content:center; padding:20px; z-index:9999; }
.spm-modal.is-open { display:flex; }
.spm-modal-overlay { position:absolute; inset:0; background:rgba(0,0,0,0.6); animation:spmFade .25s ease; }
.spm-modal-dialog { position:relative; background:#F8F8F8; width:100%; max-width:600px; max-height:85vh; overflow-y:auto; border-radius:0; padding:24px 28px 32px; box-shadow:0 10px 30px -4px rgba(0,0,0,.15); font-family:inherit; }
.spm-modal-title { margin:0 0 20px; font-size:24px; font-weight:700; color:var(--spm-text); }
.spm-modal-close { position:absolute; top:8px; right:8px; background:transparent !important; border:none !important; color:#555 !important; font-size:24px; cursor:pointer; line-height:1; width:38px; height:38px; display:flex; align-items:center; justify-content:center; padding:0; font-weight:400; box-shadow:none !important; }
.spm-modal-close:hover, .spm-modal-close:focus { color:#111 !important; outline:none; }
.spm-modal-close:active { color:#000 !important; }
.spm-close-icon { position:relative; width:22px; height:22px; display:block; }
.spm-close-icon:before, .spm-close-icon:after { content:""; position:absolute; top:50%; left:50%; width:22px; height:2px; background:currentColor; transform-origin:center; }
.spm-close-icon:before { transform:translate(-50%, -50%) rotate(45deg); }
.spm-close-icon:after { transform:translate(-50%, -50%) rotate(-45deg); }

/* Prevent body scroll when modal is open - improved version */
.spm-modal-open { 
    overflow: hidden !important; 
    height: 100vh !important;
}
.spm-modal.is-open { scroll-behavior: auto; }
.spm-modal-dialog { scroll-behavior: auto; }

.spm-invest-form { display:block; }
/* Simplified form rows */
.spm-form-row{display:flex;gap:20px;margin-bottom:18px;}
.spm-form-row.single{flex-direction:column;}
.spm-form-row label{flex:1;font-size:12px;font-weight:600;letter-spacing:.1px;color:var(--spm-text);display:flex;flex-direction:column;gap:6px;}
.spm-form-row input,.spm-form-row textarea,
.spm-form-row input[type="text"],
.spm-form-row input[type="email"],
.spm-form-row input[type="tel"],
.spm-form-row input[type="number"]{padding:10px 12px;border:1px solid #C7C7C7 !important;background:#fff;font-size:13px;font-weight:400;border-radius:0;resize:vertical;}
.spm-form-row textarea{min-height:140px;line-height:1.5;}
.spm-form-row input:focus,.spm-form-row textarea:focus,
.spm-form-row input[type="text"]:focus,
.spm-form-row input[type="email"]:focus,
.spm-form-row input[type="tel"]:focus,
.spm-form-row input[type="number"]:focus{outline:1px solid #4CAF50;outline-offset:0;border-color:#4CAF50 !important;}

/* Form sections */
.spm-form-section{margin:24px 0 18px;}
.spm-form-section h3{font-size:14px;font-weight:600;margin:0 0 12px;color:var(--spm-text);letter-spacing:.1px;}

/* Required field indicators */
.spm-form-row label .required { 
    color: #dc2626; 
    font-weight: bold; 
    font-size: 13px; 
    margin-right: 3px;
}

/* Label text wrapper to keep asterisk and text inline */
.spm-form-row label .label-text {
    display: block;
    margin-bottom: 6px;
}

/* Make label text content inline with asterisk */
.spm-form-row label {
    flex: 1;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .1px;
    color: var(--spm-text);
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.spm-form-row label > span,
.spm-form-row label > .required {
    display: inline;
}

/* Removed fieldsets / checkboxes and agreement block as per simplified requirements */

.spm-form-row label input.spmi-short{max-width:260px;}

.spm-form-actions { text-align:center; margin:0; padding:0; }
.spm-submit-btn{
    background: #ffffff !important;
    color: #61c585 !important;
    font-family: 'Montserrat', sans-serif !important;
    font-weight: 600 !important;
    font-size: 16px !important;
    font-style: normal !important;
    font-variant: normal !important;
    font-kerning: auto !important;
    font-optical-sizing: auto !important;
    font-stretch: 100% !important;
    font-variation-settings: normal !important;
    font-feature-settings: normal !important;
    text-transform: none !important;
    text-decoration: none solid rgb(97, 197, 133) !important;
    text-align: center !important;
    text-indent: 0px !important;
    padding: 14px 48px !important;
    border: 2px solid #61c585 !important;
    cursor: pointer;
    border-radius: 0 !important;
    display: inline-block;
    margin: 0;
    letter-spacing: 0.4px;
    transition: background 0.18s ease, color 0.18s ease, border-color 0.18s ease;
}
.spm-submit-btn:hover,.spm-submit-btn:focus{
    background: #61c585 !important;
    color: #ffffff !important;
    border-color: #61c585 !important;
    outline: none;
}
.spm-submit-btn:active{
    background: #4CAF50 !important;
    border-color: #4CAF50 !important;
    color: #ffffff !important;
}

.spm-form-message { margin-top:14px; font-size:13px; font-weight:500; }
.spm-form-message.success { color:#059669; }
.spm-form-message.error { color:#dc2626; }

@media (max-width:840px){
  .spm-modal-dialog { max-width:90%; }
  .spm-form-row { gap:16px; }
}
@media (max-width:640px){
  .spm-form-row { flex-direction:column; gap:12px; }
  .spm-fieldset label { width:48%; }
  .spm-modal-dialog { padding:20px 24px 28px; max-width:95%; }
}
@media (max-width:480px){
  .spm-fieldset label { width:100%; margin-right:0; }
  .spm-modal-dialog { padding:18px 20px 24px; }
}@keyframes spmFade { from { opacity:0; } to { opacity:1; } }

/* Sale CTA Section - Full Width Blue Background */
.spm-list .spm-sale-cta-section{
  margin:64px 0 0; /* Removed bottom margin to connect with footer */
  padding:60px 0 60px; /* Ensure no bottom spacing issues */
  max-width:none;
  width:100vw; /* Full viewport width */
  position:relative;
  left:50%;
  right:50%;
  margin-left:-50vw;
  margin-right:-50vw;
  background:#0D2B52; /* Blue background */
}
.spm-list .sale-cta-content{
  max-width:1200px; /* Slightly narrower container */
  margin:0 auto;
  padding:0 40px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:80px;
}
.spm-list .sale-cta-text{
  flex:1;
  max-width:700px;
}
.spm-list .spm-sale-cta-section .section-title,
.spm-list .spm-sale-cta-title-white,
.spm-list .spm-project-section-title{
  margin:0 0 20px;
  color:#fff !important; /* Force white text on blue background */
  font-size:32px;
  font-weight:700;
  line-height:1.2;
  font-family:'Montserrat', sans-serif !important;
}
.spm-list .sale-cta-body{
  font-size:16px;
  line-height:1.5;
  color:#fff; /* White text on blue background */
  margin:0;
  font-weight:400;
  font-family:'Montserrat', sans-serif !important;
}
.spm-list .sale-cta-button-wrapper{
  flex-shrink:0;
}
.spm-list .sale-cta-button{
  background:#fff; /* White button */
  color:#000; /* Black text instead of blue */
  display:inline-block;
  padding:12px 32px; /* Reduced top/bottom padding from 16px to 12px */
  font-size:16px; /* Increased by 2px from 14px */
  font-weight:700; /* Increased boldness from 600 to 700 */
  text-decoration:none;
  letter-spacing:.3px;
  border:none;
  border-radius:0; /* Remove border radius for sharp corners */
  transition:all 0.3s ease;
  white-space:nowrap;
  font-family:'Montserrat', sans-serif !important;
  cursor:pointer;
}
.spm-list .sale-cta-button:hover{
  background:#f8f9fa;
  color:#000; /* Keep black text on hover */
  text-decoration:none;
}
/* Mobile responsive adjustments */
@media (max-width:960px){
  .spm-list .sale-cta-content{
    flex-direction:column;
    align-items:flex-start;
    gap:32px;
    padding:0 32px;
  }
  .spm-list .sale-cta-button-wrapper{
    align-self:flex-start;
  }
}
@media (max-width:620px){
  .spm-list .spm-sale-cta-section{
    padding:40px 0;
  }
  .spm-list .sale-cta-content{
    padding:0 24px;
    gap:24px;
  }
}
