/*
Theme Name: Gridspace Market
Theme URI: https://gridspace.market
Description: Child theme for Gridspace Marketplace. Map-centric marketplace for distributed energy storage. Built on Kadence.
Author: Gridspace
Template: kadence
Version: 1.0.0
*/

/* ============ TOKENS ============ */
:root{
  --gs-blue:#2C6CB5; --gs-blue-deep:#1E4E86; --gs-blue-ink:#163A63;
  --gs-amber:#E9A02C; --gs-amber-deep:#9A6A0F; --gs-green:#1E7A46;
  --gs-bg:#F6F3EC; --gs-card:#fff; --gs-line:#E7E2D6;
  --gs-ink:#1B2431; --gs-muted:#5C6672; --gs-muted2:#8A929C;
  --gs-tint-blue:#EAF1F7; --gs-tint-amber:#FFF4DE; --gs-tint-green:#E8F3EC;
}

/* ============ BASE ============ */
.gs *{box-sizing:border-box;}
.gs{font-family:'Figtree',system-ui,sans-serif;color:var(--gs-ink);background:var(--gs-bg);-webkit-font-smoothing:antialiased;}
.gs a{color:var(--gs-blue-deep);text-decoration:none;}
.gs a:hover{color:var(--gs-amber);}
.gs h1,.gs h2,.gs h3{font-family:'Space Grotesk',sans-serif;margin:0;letter-spacing:-0.01em;}
.gs-wrap{max-width:1280px;margin:0 auto;padding:0 28px;}
@keyframes gsPulse{0%{transform:scale(1);opacity:.55;}70%{transform:scale(2.4);opacity:0;}100%{transform:scale(2.4);opacity:0;}}

/* ============ NAV ============ */
.gs-nav{display:flex;align-items:center;justify-content:space-between;padding:18px 0;position:sticky;top:0;z-index:40;background:rgba(246,243,236,.9);backdrop-filter:blur(8px);border-bottom:1px solid var(--gs-line);}
.gs-nav img{height:34px;display:block;}
.gs-nav nav{display:flex;align-items:center;gap:26px;}
.gs-nav nav a{font-weight:600;font-size:15px;color:var(--gs-ink);}
.gs-nav .gs-login{color:var(--gs-muted);}
.gs-btn{font-weight:700;font-size:15px;color:#fff;background:var(--gs-blue-deep);padding:10px 18px;border-radius:8px;}
.gs-btn:hover{color:#fff;opacity:.92;}

/* ============ HERO ============ */
.gs-hero{margin-top:26px;}
.gs-hero-grid{display:grid;grid-template-columns:1.05fr 1.35fr;gap:28px;align-items:stretch;}
.gs-hero-left{display:flex;flex-direction:column;justify-content:center;padding:8px 4px;}
.gs-pill{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;background:var(--gs-tint-amber);color:var(--gs-amber-deep);font-weight:700;font-size:12.5px;letter-spacing:.06em;text-transform:uppercase;padding:6px 12px;border-radius:999px;border:1px solid #F3DCA6;}
.gs-hero h1{font-size:52px;line-height:1.03;margin-top:18px;font-weight:700;}
.gs-hero p.lead{font-size:18px;line-height:1.5;color:var(--gs-muted);margin:18px 0 0;max-width:460px;}
.gs-search{margin-top:26px;background:#fff;border:1px solid var(--gs-line);border-radius:14px;padding:10px;box-shadow:0 10px 30px rgba(22,58,99,.08);}
.gs-search-row{display:flex;gap:8px;}
.gs-search-field{flex:1;display:flex;align-items:center;gap:10px;padding:0 12px;background:var(--gs-bg);border-radius:9px;}
.gs-search-field input{flex:1;border:0;background:transparent;outline:none;font-family:'Figtree';font-size:15.5px;color:var(--gs-ink);padding:13px 0;}
.gs-search button{border:0;background:var(--gs-amber);color:#3A2A05;font-family:'Figtree';font-weight:800;font-size:15px;padding:0 20px;border-radius:9px;cursor:pointer;}
.gs-geo{margin-top:8px;display:flex;align-items:center;gap:7px;border:0;background:transparent;color:var(--gs-blue-deep);font-family:'Figtree';font-weight:600;font-size:13.5px;cursor:pointer;padding:4px 6px;}
.gs-locmsg{min-height:20px;margin-top:10px;font-size:13.5px;color:var(--gs-amber-deep);font-weight:600;}

/* ============ MAP ============ */
.gs-map{position:relative;border-radius:18px;overflow:hidden;border:1px solid #D8E0E9;min-height:520px;background:repeating-linear-gradient(0deg,rgba(30,78,134,.09) 0 1px,transparent 1px 54px),repeating-linear-gradient(90deg,rgba(30,78,134,.09) 0 1px,transparent 1px 54px),linear-gradient(135deg,#EAF1F7 0%,#DFE9F1 100%);}
.gs-feeder{position:absolute;}
.gs-map-chip{position:absolute;left:14px;top:14px;background:rgba(255,255,255,.92);border:1px solid var(--gs-line);border-radius:8px;padding:8px 12px;font-size:12px;font-weight:700;color:var(--gs-blue-deep);letter-spacing:.04em;}
.gs-pin{position:absolute;transform:translate(-50%,-100%);border:0;background:transparent;cursor:pointer;padding:0;z-index:5;}
.gs-pin-inner{position:relative;display:flex;flex-direction:column;align-items:center;}
.gs-pin-ring{position:absolute;bottom:-4px;width:26px;height:26px;border-radius:50%;background:rgba(233,160,44,.5);animation:gsPulse 1.8s ease-out infinite;display:none;}
.gs-pin.is-active .gs-pin-ring{display:block;}
.gs-pin-bubble{color:#fff;font-family:'Space Grotesk';font-weight:700;font-size:13px;padding:5px 9px;border-radius:8px;box-shadow:0 4px 10px rgba(22,58,99,.28);white-space:nowrap;}
.gs-pin-point{width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:8px solid;}
.gs-listing{position:absolute;left:14px;bottom:14px;right:14px;background:#fff;border-radius:14px;border:1px solid var(--gs-line);box-shadow:0 14px 34px rgba(22,58,99,.18);padding:16px;display:flex;gap:16px;align-items:center;}
.gs-listing-mw{width:92px;height:72px;border-radius:10px;flex:none;background:linear-gradient(135deg,#1E4E86,#2C6CB5);display:flex;align-items:center;justify-content:center;color:#fff;font-family:'Space Grotesk';font-weight:700;font-size:22px;}
.gs-tag{font-size:12px;font-weight:700;color:var(--gs-blue);background:var(--gs-tint-blue);padding:3px 9px;border-radius:999px;}
.gs-listing-cta{flex:none;background:var(--gs-amber);color:#3A2A05;font-weight:800;font-size:14px;padding:12px 18px;border-radius:9px;}
.gs-listing-cta:hover{color:#3A2A05;}

/* ============ SECTIONS ============ */
.gs-section{margin-top:64px;}
.gs-center{text-align:center;max-width:620px;margin:0 auto 30px;}
.gs-section h2{font-size:32px;font-weight:700;}
.gs-section .sub{color:var(--gs-muted);font-size:17px;margin-top:10px;}
.gs-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:22px;}
.gs-head h2{font-size:30px;font-weight:700;}
.gs-head .sub{color:var(--gs-muted);font-size:16px;margin-top:6px;}

.gs-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.gs-grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}

.gs-action{background:#fff;border:1px solid var(--gs-line);border-radius:16px;padding:26px;display:flex;flex-direction:column;box-shadow:0 6px 18px rgba(22,58,99,.05);}
.gs-action-ico{width:52px;height:52px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:24px;}
.gs-action h3{font-size:23px;margin-top:16px;font-weight:700;}
.gs-action .who{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;margin-top:6px;}
.gs-action p{color:var(--gs-muted);font-size:15px;line-height:1.5;margin:12px 0 20px;}
.gs-action a{margin-top:auto;font-weight:700;font-size:15px;}

/* project cards */
.gs-proj{background:#fff;border:1px solid var(--gs-line);border-radius:16px;overflow:hidden;box-shadow:0 6px 18px rgba(22,58,99,.05);}
.gs-proj-top{height:138px;background:linear-gradient(135deg,#1E4E86,#2C6CB5);position:relative;display:flex;align-items:flex-end;padding:14px;}
.gs-proj-tex{position:absolute;inset:0;background:repeating-linear-gradient(0deg,rgba(255,255,255,.08) 0 1px,transparent 1px 26px),repeating-linear-gradient(90deg,rgba(255,255,255,.08) 0 1px,transparent 1px 26px);}
.gs-proj-score{position:absolute;top:12px;right:12px;color:#fff;font-family:'Space Grotesk';font-weight:700;font-size:15px;padding:5px 11px;border-radius:999px;}
.gs-proj-mw{position:relative;color:#fff;font-family:'Space Grotesk';font-weight:700;font-size:30px;}
.gs-proj-body{padding:16px 16px 18px;}
.gs-proj-row{display:flex;align-items:center;justify-content:space-between;}
.gs-proj-type{font-family:'Space Grotesk';font-weight:700;font-size:17px;}
.gs-proj-meta{color:var(--gs-muted);font-size:13.5px;margin-top:4px;}
.gs-bar{height:6px;background:#EDEAE1;border-radius:999px;margin-top:14px;overflow:hidden;}
.gs-bar span{display:block;height:100%;background:var(--gs-amber);}
.gs-proj-fig{display:flex;justify-content:space-between;margin-top:9px;font-size:13px;color:var(--gs-muted);}

/* stats band */
.gs-stats{margin-top:70px;background:var(--gs-blue-ink);border-radius:20px;padding:44px 40px;color:#fff;position:relative;overflow:hidden;}
.gs-stats-tex{position:absolute;inset:0;background:repeating-linear-gradient(90deg,rgba(255,255,255,.05) 0 1px,transparent 1px 60px);}
.gs-stats .eyebrow{text-transform:uppercase;letter-spacing:.1em;font-size:12.5px;font-weight:700;color:#7FB0E0;}
.gs-stats h2{font-size:30px;font-weight:700;margin-top:8px;max-width:640px;}
.gs-stats-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr 1fr;gap:24px;margin-top:32px;align-items:end;}
.gs-stat{border-left:2px solid rgba(233,160,44,.6);padding-left:16px;}
.gs-stat .num{font-family:'Space Grotesk';font-weight:700;font-size:34px;line-height:1;color:var(--gs-amber);}
.gs-stat .lbl{font-size:13.5px;color:#C5D4E4;margin-top:8px;line-height:1.4;}

/* platform */
.gs-plat{margin-top:70px;display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;}
.gs-eyebrow{text-transform:uppercase;letter-spacing:.09em;font-size:12.5px;font-weight:700;color:var(--gs-amber-deep);}
.gs-plat h2{font-size:30px;font-weight:700;margin-top:10px;}
.gs-plat p{color:var(--gs-muted);font-size:16px;line-height:1.55;margin-top:14px;}
.gs-plat-stack{display:flex;flex-direction:column;gap:14px;}
.gs-card-mkt{background:#fff;border:1px solid var(--gs-line);border-radius:16px;padding:22px;box-shadow:0 6px 18px rgba(22,58,99,.05);}
.gs-card-plat{background:var(--gs-tint-blue);border:1px solid #CFE0EF;border-radius:16px;padding:22px;}
.gs-built{text-align:center;color:#B7AE9A;font-size:20px;line-height:.6;}
.gs-phase{font-size:12.5px;color:var(--gs-muted2);text-align:center;margin-top:2px;}

/* insights */
.gs-art{background:#fff;border:1px solid var(--gs-line);border-radius:14px;overflow:hidden;box-shadow:0 6px 18px rgba(22,58,99,.05);display:flex;flex-direction:column;color:inherit;}
.gs-art-thumb{height:118px;display:flex;align-items:center;justify-content:center;font-size:34px;}
.gs-art-body{padding:14px 15px 16px;display:flex;flex-direction:column;flex:1;}
.gs-art-cat{font-size:11.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--gs-amber-deep);}
.gs-art-title{font-family:'Space Grotesk';font-weight:600;font-size:16px;line-height:1.25;margin-top:7px;}
.gs-art-meta{margin-top:auto;padding-top:12px;color:var(--gs-muted2);font-size:12.5px;}

/* cta band */
.gs-cta{margin-top:72px;background:linear-gradient(120deg,#1E4E86,#2C6CB5);border-radius:20px;padding:52px 44px;text-align:center;color:#fff;position:relative;overflow:hidden;}
.gs-cta-tex{position:absolute;inset:0;background:repeating-linear-gradient(0deg,rgba(255,255,255,.06) 0 1px,transparent 1px 40px),repeating-linear-gradient(90deg,rgba(255,255,255,.06) 0 1px,transparent 1px 40px);}
.gs-cta h2{font-size:34px;font-weight:700;max-width:720px;margin:0 auto;}
.gs-cta-row{display:flex;gap:14px;justify-content:center;margin-top:26px;}
.gs-cta-amber{background:var(--gs-amber);color:#3A2A05;font-weight:800;font-size:16px;padding:15px 26px;border-radius:10px;}
.gs-cta-amber:hover{color:#3A2A05;}
.gs-cta-ghost{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.35);color:#fff;font-weight:700;font-size:16px;padding:15px 26px;border-radius:10px;}
.gs-cta-ghost:hover{color:#fff;}

/* footer */
.gs-foot{margin-top:60px;padding:44px 0 56px;border-top:1px solid var(--gs-line);}
.gs-foot-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr 1fr;gap:30px;}
.gs-foot img{height:96px;display:block;}
.gs-foot p{color:var(--gs-muted);font-size:13.5px;line-height:1.5;margin-top:12px;max-width:240px;}
.gs-foot h4{font-family:'Space Grotesk';font-weight:700;font-size:14px;color:var(--gs-ink);margin:0;}
.gs-foot-col a{display:block;font-size:14px;color:var(--gs-muted);margin-top:9px;}
.gs-foot-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:40px;padding-top:20px;border-top:1px solid var(--gs-line);color:var(--gs-muted2);font-size:13px;}

/* responsive */
@media (max-width:960px){
  .gs-hero-grid,.gs-plat{grid-template-columns:1fr;}
  .gs-grid-3,.gs-grid-4,.gs-stats-grid,.gs-foot-grid{grid-template-columns:1fr 1fr;}
  .gs-nav nav{gap:16px;flex-wrap:wrap;}
  .gs-hero h1{font-size:40px;}
}
@media (max-width:600px){
  .gs-grid-3,.gs-grid-4,.gs-stats-grid,.gs-foot-grid{grid-template-columns:1fr;}
}
