/* Sunpower Partners Corporation — design system & components */
:root{--spc-blue:#386C9C;--spc-deep:#1F3D57;--spc-gold:#F5A623;--spc-gold-dark:#D4891A;--spc-gold-light:#FFF3DC;--spc-slate:#F4F8FC;--spc-text:#1F3D57;--spc-muted:#647C97;--spc-border:#DDE7F0;--spc-radius:12px;--spc-radius-lg:20px;--spc-shadow:0 4px 24px rgba(31,61,87,.08);--spc-shadow-lg:0 12px 48px rgba(31,61,87,.16)}
body{font-family:Inter,sans-serif;color:var(--spc-text)}
h1,h2,h3,h4,h5,.elementor-heading-title{font-family:'Plus Jakarta Sans',sans-serif}

/* Header (Xpro template) */
.xpro-theme-builder-header{background:var(--spc-deep)}
.xtb-header-sticky{position:sticky;top:0;z-index:1000;box-shadow:0 4px 24px rgba(31,61,87,.25)}
.xpro-theme-builder-header .xpro-elementor-nav-menu a,.xpro-theme-builder-header .xpro-horizontal-menu a{font-family:'Plus Jakarta Sans',sans-serif}

/* Shared buttons (shortcode components) */
.spc-btn{display:inline-flex;align-items:center;gap:8px;padding:14px 28px;border-radius:50px;font-family:'Plus Jakarta Sans',sans-serif;font-weight:600;font-size:.9rem;text-decoration:none;transition:all .25s ease;border:0;cursor:pointer}
.spc-btn-gold{background:var(--spc-gold);color:var(--spc-deep)!important}
.spc-btn-gold:hover{background:var(--spc-gold-dark);transform:translateY(-2px);box-shadow:0 8px 24px rgba(245,166,35,.35)}
.spc-btn-outline{border:2px solid var(--spc-gold);color:var(--spc-gold)!important;background:transparent}
.spc-btn-outline:hover{background:var(--spc-gold);color:var(--spc-deep)!important}
.spc-btn-block{width:100%;justify-content:center;margin-top:20px}

/* Elementor helper classes used by the page builder */
.spc-section-dark{background:var(--spc-deep)}
.spc-card-hover{transition:transform .3s ease,box-shadow .3s ease}
.spc-card-hover:hover{transform:translateY(-6px);box-shadow:var(--spc-shadow-lg)}

/* ── Portfolio grid ───────────────────────────── */
.spc-filter-bar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:36px}
.spc-filter-btn{padding:10px 20px;border-radius:50px;font-family:'Plus Jakarta Sans',sans-serif;font-weight:600;font-size:.85rem;border:2px solid var(--spc-border);color:var(--spc-muted);background:#fff;cursor:pointer;transition:all .2s}
.spc-filter-btn:hover,.spc-filter-btn.active{background:var(--spc-blue);color:#fff;border-color:var(--spc-blue)}
.spc-portfolio-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
@media(max-width:1024px){.spc-portfolio-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.spc-portfolio-grid{grid-template-columns:1fr}}
.spc-card{border-radius:var(--spc-radius-lg);overflow:hidden;background:#fff;border:1px solid var(--spc-border);transition:transform .3s,box-shadow .3s}
.spc-card:hover{transform:translateY(-4px);box-shadow:var(--spc-shadow-lg)}
.spc-card-img{position:relative;display:block;width:100%;padding:0;border:0;cursor:pointer;background:var(--spc-slate);overflow:hidden}
.spc-card-img img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;transition:transform .4s ease}
.spc-card-img:hover img{transform:scale(1.04)}
.spc-card-view{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(31,61,87,.55);color:#fff;font-family:'Plus Jakarta Sans',sans-serif;font-weight:600;opacity:0;transition:opacity .25s}
.spc-card-img:hover .spc-card-view,.spc-card-img:focus-visible .spc-card-view{opacity:1}
.spc-card-body{padding:20px 24px 24px;text-align:left}
.spc-card-type{font-family:'Plus Jakarta Sans',sans-serif;font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--spc-gold-dark);margin-bottom:8px}
.spc-card-body h3{font-size:1.05rem;margin:0 0 6px;color:var(--spc-text)}
.spc-card-body p{font-size:.85rem;color:var(--spc-muted);margin:0;line-height:1.6}
.spc-card-meta{display:flex;gap:14px;flex-wrap:wrap;margin-top:14px;padding-top:14px;border-top:1px solid var(--spc-border)}
.spc-card-meta span{font-size:.78rem;color:var(--spc-muted);font-family:'Plus Jakarta Sans',sans-serif;font-weight:500}

/* ── Project modal ───────────────────────────── */
.spc-modal-backdrop{position:fixed;inset:0;background:rgba(15,30,45,.72);backdrop-filter:blur(6px);z-index:99999;display:flex;align-items:center;justify-content:center;padding:24px;opacity:0;pointer-events:none;transition:opacity .3s}
.spc-modal-backdrop.open{opacity:1;pointer-events:auto}
.spc-modal{background:#fff;border-radius:var(--spc-radius-lg);width:100%;max-width:960px;max-height:calc(100vh - 48px);overflow-y:auto;box-shadow:0 24px 80px rgba(0,0,0,.35);transform:translateY(24px) scale(.97);transition:transform .3s cubic-bezier(.22,1,.36,1);position:relative}
.spc-modal-backdrop.open .spc-modal{transform:none}
.spc-modal-close{position:absolute;top:14px;right:14px;z-index:5;width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.92);border:0;cursor:pointer;font-size:1rem;color:var(--spc-deep);box-shadow:var(--spc-shadow);transition:all .2s}
.spc-modal-close:hover{background:var(--spc-gold);transform:rotate(90deg)}
.spc-modal-gallery{position:relative;background:var(--spc-deep);border-radius:var(--spc-radius-lg) var(--spc-radius-lg) 0 0;overflow:hidden}
.spc-modal-track{display:flex;transition:transform .4s cubic-bezier(.22,1,.36,1)}
.spc-modal-track img{width:100%;flex-shrink:0;aspect-ratio:16/9;object-fit:cover}
.spc-modal-nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;border:0;cursor:pointer;background:rgba(255,255,255,.92);color:var(--spc-deep);font-size:1.6rem;line-height:1;box-shadow:var(--spc-shadow);transition:background .2s;z-index:4}
.spc-modal-nav:hover{background:var(--spc-gold)}
.spc-modal-nav.prev{left:14px}.spc-modal-nav.next{right:14px}
.spc-modal-dots{position:absolute;bottom:12px;left:0;right:0;display:flex;gap:8px;justify-content:center;z-index:4}
.spc-modal-dots button{width:9px;height:9px;border-radius:50%;border:0;padding:0;cursor:pointer;background:rgba(255,255,255,.45);transition:all .25s}
.spc-modal-dots button.active{background:var(--spc-gold);transform:scale(1.25)}
.spc-modal-counter{position:absolute;top:14px;left:14px;z-index:4;background:rgba(31,61,87,.75);color:#fff;font-family:'Plus Jakarta Sans',sans-serif;font-size:.72rem;font-weight:600;padding:5px 12px;border-radius:50px}
.spc-modal-body{padding:30px 34px 34px}
.spc-modal-type{display:inline-block;background:var(--spc-gold);color:var(--spc-deep);font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;padding:5px 14px;border-radius:50px;margin-bottom:12px}
.spc-modal-title{font-size:clamp(1.3rem,2.5vw,1.8rem);margin:0 0 6px;color:var(--spc-text)}
.spc-modal-location{font-size:.9rem;color:var(--spc-muted);margin-bottom:20px}
.spc-modal-label{font-family:'Plus Jakarta Sans',sans-serif;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--spc-gold-dark);margin-bottom:10px}
.spc-modal-specs{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:2px;background:var(--spc-border);border-radius:var(--spc-radius);overflow:hidden;margin-bottom:22px}
.spc-spec{background:var(--spc-slate);padding:15px 17px}
.spc-spec b{display:block;font-family:'Plus Jakarta Sans',sans-serif;font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--spc-muted);margin-bottom:5px}
.spc-spec span{font-family:'Plus Jakarta Sans',sans-serif;font-size:.92rem;font-weight:700;color:var(--spc-text)}
.spc-modal-desc{font-size:.95rem;color:var(--spc-muted);line-height:1.8;margin:0 0 20px}
.spc-modal-notes{background:var(--spc-gold-light);border:1px solid rgba(245,166,35,.25);border-radius:var(--spc-radius);padding:15px 19px;font-size:.86rem;color:var(--spc-text);line-height:1.7;margin-bottom:24px}
.spc-modal-notes:empty{display:none}
.spc-modal-cta{display:flex;gap:14px;flex-wrap:wrap}
@media(max-width:640px){.spc-modal-backdrop{padding:12px}.spc-modal-body{padding:22px 20px}.spc-modal-specs{grid-template-columns:1fr 1fr}.spc-modal-track img{aspect-ratio:4/3}.spc-modal-cta .spc-btn{width:100%;justify-content:center}}
@media(max-width:420px){.spc-modal-specs{grid-template-columns:1fr}}
body.spc-modal-open{overflow:hidden}

/* ── Calculator ───────────────────────────── */
.spc-calc{display:grid;grid-template-columns:1fr 1fr;gap:36px;align-items:start}
@media(max-width:900px){.spc-calc{grid-template-columns:1fr}}
.spc-calc-form{background:#fff;border-radius:var(--spc-radius-lg);padding:36px;border:1px solid var(--spc-border);box-shadow:var(--spc-shadow)}
.spc-calc-form h3{margin:0 0 20px;color:var(--spc-text)}
.spc-toggle{display:flex;background:var(--spc-slate);border:1px solid var(--spc-border);border-radius:50px;padding:4px;margin-bottom:20px}
.spc-toggle button{flex:1;padding:10px 14px;border-radius:50px;border:0;cursor:pointer;background:transparent;font-family:'Plus Jakarta Sans',sans-serif;font-weight:600;font-size:.84rem;color:var(--spc-muted);transition:all .2s}
.spc-toggle button.active{background:var(--spc-blue);color:#fff;box-shadow:var(--spc-shadow)}
.spc-field{margin-bottom:22px}
.spc-field label{display:block;font-family:'Plus Jakarta Sans',sans-serif;font-weight:600;font-size:.86rem;color:var(--spc-text);margin-bottom:8px}
.spc-field input,.spc-field select{width:100%;padding:13px 16px;border:2px solid var(--spc-border);border-radius:var(--spc-radius);font-family:Inter,sans-serif;font-size:.95rem;color:var(--spc-text);background:#fff;outline:none;transition:border-color .2s,box-shadow .2s}
.spc-field input:focus,.spc-field select:focus{border-color:var(--spc-gold);box-shadow:0 0 0 3px rgba(245,166,35,.12)}
.spc-field small{display:block;font-size:.74rem;color:var(--spc-muted);margin-top:7px;line-height:1.5}
.spc-suffix-wrap{position:relative}
.spc-suffix-wrap input{padding-right:70px;-moz-appearance:textfield;appearance:textfield}
.spc-suffix-wrap input::-webkit-outer-spin-button,.spc-suffix-wrap input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.spc-suffix-wrap span{position:absolute;right:16px;top:50%;transform:translateY(-50%);font-family:'Plus Jakarta Sans',sans-serif;font-size:.78rem;font-weight:600;color:var(--spc-muted);pointer-events:none}
.spc-formula-note{background:var(--spc-gold-light);border:1px solid rgba(245,166,35,.2);border-radius:var(--spc-radius);padding:18px;font-size:.85rem;color:var(--spc-text);line-height:1.65}
.spc-formula-note a{color:var(--spc-gold-dark);text-decoration:underline}
.spc-result-box{background:var(--spc-deep);border-radius:var(--spc-radius-lg);padding:32px 34px;color:#fff}
.spc-result-box h3{color:#fff;margin:0 0 20px}
.spc-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid rgba(255,255,255,.08)}
.spc-row:last-child{border-bottom:0}
.spc-row span{font-size:.86rem;color:rgba(255,255,255,.6)}
.spc-row strong{font-family:'Plus Jakarta Sans',sans-serif;font-size:1.06rem;color:var(--spc-gold);white-space:nowrap}
.spc-chart-card{background:var(--spc-slate);border-radius:var(--spc-radius-lg);padding:22px;margin-top:20px}
.spc-chart-card h4{margin:0 0 14px;font-size:.95rem;color:var(--spc-text)}
.spc-chart{display:flex;gap:8px;align-items:flex-end;height:110px;overflow:hidden;position:relative}
.spc-chart .col{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px}
.spc-chart .bars{width:100%;display:flex;gap:2px;align-items:flex-end;height:90px}
.spc-chart .bars i{flex:1;border-radius:3px 3px 0 0;transition:height .4s;display:block}
.spc-chart .bars i.g{background:#c0cad8}.spc-chart .bars i.y{background:var(--spc-gold)}
.spc-chart .yr{font-size:.62rem;color:var(--spc-muted);font-family:'Plus Jakarta Sans',sans-serif}
.spc-chart-legend{display:flex;gap:16px;margin-top:12px;font-size:.74rem;color:var(--spc-muted)}
.spc-chart-legend span{display:flex;align-items:center;gap:5px}
.spc-chart-legend i{width:12px;height:12px;border-radius:2px;display:inline-block}
.spc-chart-legend i.g{background:#c0cad8}.spc-chart-legend i.y{background:var(--spc-gold)}
.spc-disclaimer{background:var(--spc-slate);border:1px solid var(--spc-border);border-left:4px solid var(--spc-gold);border-radius:var(--spc-radius);padding:17px 21px;margin-top:22px;font-size:.82rem;color:var(--spc-muted);line-height:1.7}
.spc-disclaimer strong{color:var(--spc-text)}

/* WPForms styling to match brand */
.wpforms-container input[type=text],.wpforms-container input[type=email],.wpforms-container input[type=tel],.wpforms-container textarea,.wpforms-container select{border:2px solid var(--spc-border)!important;border-radius:var(--spc-radius)!important;padding:12px 16px!important;font-family:Inter,sans-serif!important}
.wpforms-container input:focus,.wpforms-container textarea:focus{border-color:var(--spc-gold)!important;box-shadow:0 0 0 3px rgba(245,166,35,.12)!important}
.wpforms-container .wpforms-submit,.wpforms-container button[type=submit]{background:var(--spc-gold)!important;color:var(--spc-deep)!important;border:0!important;border-radius:50px!important;padding:15px 32px!important;font-family:'Plus Jakarta Sans',sans-serif!important;font-weight:600!important;transition:all .25s!important}
.wpforms-container .wpforms-submit:hover{background:var(--spc-gold-dark)!important;transform:translateY(-2px)}
