/* =========================================================
   Custom software page (custom-software.html).
   Sits on top of main.css + backend.css: hero, .wins and the
   Northside banner come from those. Only the new parts are here.
   ========================================================= */
.cs{--mg:#ff45a8;}

/* hero call to action, beside the intro line */
.cs-cue{display:inline-flex;align-items:center;gap:12px;font-family:var(--fm);font-size:10.5px;letter-spacing:2.8px;text-transform:uppercase;
  color:var(--ink);border:1px solid var(--line-2);padding:14px 22px;background:rgba(8,8,10,.55);transition:.3s var(--ease);}
.cs-cue i{width:8px;height:8px;background:var(--acid);display:block;animation:blip 2.2s infinite;}
.cs-cue:hover{background:var(--acid);color:#08080a;border-color:var(--acid);}
.cs-cue:hover i{background:#08080a;}

/* sections */
.cs-sec{padding-top:clamp(70px,9vw,130px);}
.cs-sec .slabhead{border-top:1px solid var(--line);padding-top:22px;margin-bottom:clamp(28px,3.6vw,48px);}
.cs-sec .slabhead h2{font-size:clamp(26px,4.2vw,60px);}

/* ---------- 01 rented vs owned ---------- */
.vs{display:grid;grid-template-columns:minmax(0,1fr) 64px minmax(0,1fr);border:1px solid var(--line);background:var(--bg-2);}
.vs-col{padding:clamp(22px,3vw,44px);display:flex;flex-direction:column;gap:22px;min-width:0;}
.vs-k{font-family:var(--fm);font-size:10.5px;letter-spacing:2.6px;text-transform:uppercase;color:var(--dim);}
.vs-own .vs-k{color:var(--acid);}
.vs-foot{margin-top:auto;display:flex;flex-wrap:wrap;gap:8px;}
.vs-foot span{padding:7px 11px;border:1px solid var(--line-2);font-family:var(--fm);font-size:10px;letter-spacing:1.3px;text-transform:uppercase;color:var(--dim);}
.vs-own .vs-foot span{border-color:rgba(216,255,54,.4);color:var(--acid);}

.bill{list-style:none;border-top:1px dashed var(--line-2);}
.bill li{position:relative;display:flex;justify-content:space-between;align-items:baseline;gap:14px;padding:12px 2px;border-bottom:1px dashed var(--line-2);}
.bill span{position:relative;font-weight:600;font-size:clamp(15px,1.25vw,17px);color:var(--ink);transition:color .5s var(--ease);transition-delay:calc(var(--i) * 140ms + 200ms);}
.bill i{font-style:normal;font-family:var(--fm);font-size:10.5px;letter-spacing:1px;color:var(--mid);white-space:nowrap;}
.bill span::after{content:"";position:absolute;left:-2px;right:-2px;top:52%;height:2px;background:var(--mg);transform:scaleX(0);transform-origin:0 50%;
  transition:transform .55s cubic-bezier(.65,0,.2,1);transition-delay:calc(var(--i) * 140ms + 200ms);}
.vs.lit .bill span::after{transform:scaleX(1);}
.vs.lit .bill span{color:var(--mid);}

.vs-mid{display:grid;place-items:center;border-left:1px solid var(--line);border-right:1px solid var(--line);}
.vs-mid span{width:42px;height:42px;display:grid;place-items:center;background:var(--acid);}
.vs-mid svg{width:20px;height:20px;fill:none;stroke:#08080a;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}

/* the owned system: a small admin window */
.sys{border:1px solid var(--line-2);background:#0b0b0e;box-shadow:0 30px 60px -24px rgba(0,0,0,.8);}
.sys-bar{display:flex;align-items:center;gap:12px;padding:8px 11px;border-bottom:1px solid var(--line);background:#141418;}
.sys-bar .dots{display:flex;gap:5px;}
.sys-bar .dots i{width:7px;height:7px;border-radius:50%;background:#3a3a42;display:block;}
.sys-bar .url{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--fm);font-size:10px;color:var(--mid);background:#0b0b0e;padding:4px 9px;}
.sys-body{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.6fr);min-height:250px;}
.sys-nav{list-style:none;border-right:1px solid var(--line);padding:10px 0;}
.sys-nav li{display:flex;align-items:center;gap:10px;padding:9px 14px;font-size:13.5px;font-weight:600;color:var(--mid);
  transition:color .5s var(--ease),background .5s var(--ease);transition-delay:calc(var(--i) * 140ms + 900ms);}
.sys-nav li::before{content:"";width:7px;height:7px;flex:none;border:1px solid currentColor;transition:background .5s var(--ease);transition-delay:inherit;}
.vs.lit .sys-nav li{color:var(--ink);}
.vs.lit .sys-nav li::before{background:var(--acid);border-color:var(--acid);}
.vs.lit .sys-nav li:first-child{background:rgba(216,255,54,.08);}
.sys-main{padding:14px;display:flex;flex-direction:column;gap:12px;}
.sys-row{display:flex;justify-content:space-between;align-items:baseline;gap:10px;}
.sys-row b{font-weight:800;font-size:15px;}
.sys-row i{font-style:normal;font-family:var(--fm);font-size:10px;color:var(--acid);}
.sys-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;}
.sys-cards span{height:46px;border:1px solid var(--line);background:linear-gradient(180deg,rgba(255,255,255,.05),transparent);}
.sys-cards span:first-child{border-color:rgba(216,255,54,.45);background:rgba(216,255,54,.07);}
.sys-lines{display:flex;flex-direction:column;gap:9px;margin-top:4px;}
.sys-lines i{display:block;height:9px;background:rgba(255,255,255,.08);}
.sys-lines i:nth-child(1){width:92%;} .sys-lines i:nth-child(2){width:74%;} .sys-lines i:nth-child(3){width:84%;} .sys-lines i:nth-child(4){width:58%;}

@media(max-width:900px){
  .vs{grid-template-columns:1fr;}
  .vs-mid{border:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:12px 0;}
  .vs-mid svg{transform:rotate(90deg);}
}
@media(max-width:520px){
  .bill li{flex-direction:column;gap:2px;}
  .sys-body{grid-template-columns:1fr;min-height:0;}
  .sys-nav{display:grid;grid-template-columns:1fr 1fr;border-right:0;border-bottom:1px solid var(--line);padding:6px 0;}
  .sys-nav li{padding:7px 12px;font-size:12.5px;}
}

/* ---------- 02 where the money goes ---------- */
.pains{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line);}
.pain{padding:clamp(20px,2.4vw,34px);border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:14px;
  transition:background .4s var(--ease);}
.pain:hover{background:rgba(255,255,255,.025);}
.pn{font-family:var(--fm);font-size:11px;letter-spacing:2.4px;color:var(--mg);}
.pain h3{font-weight:800;font-size:clamp(19px,1.7vw,24px);line-height:1.15;letter-spacing:-.02em;}
.pain p{color:var(--dim);font-size:15px;line-height:1.55;}
@media(max-width:1000px){.pains{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:560px){.pains{grid-template-columns:1fr;}}

/* ---------- 03 built for you ---------- */
.get{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(24px,4vw,64px);align-items:start;}
.get-copy{display:flex;flex-direction:column;gap:18px;}
.get-h{font-weight:900;text-transform:uppercase;letter-spacing:-.045em;line-height:.9;font-size:clamp(32px,3.6vw,58px);}
.get-h em{font-style:normal;color:var(--acid);}
.get-copy p{color:#c9c9d1;font-size:clamp(15.5px,1.25vw,18px);line-height:1.55;max-width:48ch;}
.get-copy .get-note{font-size:14px;color:var(--mid);border-left:2px solid var(--acid);padding-left:14px;}
.get .wi{background:rgba(216,255,54,.06);}
.get:hover .wi{background:var(--acid);border-color:var(--acid);}
.get:hover .wi svg{stroke:#08080a;}
@media(max-width:900px){.get{grid-template-columns:1fr;}}

/* ---------- 04 calculator ---------- */
.calc{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);border:1px solid var(--line);background:var(--bg-2);}
.calc-in{padding:clamp(22px,3vw,44px);display:flex;flex-direction:column;gap:16px;border-right:1px solid var(--line);}
.calc-in label{position:relative;display:flex;flex-direction:column;gap:8px;}
.calc-in label span{font-family:var(--fm);font-size:10.5px;letter-spacing:1.8px;text-transform:uppercase;color:var(--dim);}
.calc-in input{width:100%;font:800 clamp(24px,2.4vw,34px)/1 var(--fd);letter-spacing:-.02em;color:var(--ink);background:#0b0b0e;
  border:1px solid var(--line-2);padding:14px 16px;border-radius:0;-moz-appearance:textfield;appearance:textfield;transition:border-color .3s var(--ease);}
.calc-in input::-webkit-outer-spin-button,.calc-in input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}
.calc-in input:focus{outline:none;border-color:var(--acid);}
.calc-in .pre{position:absolute;left:16px;bottom:14px;font:800 clamp(24px,2.4vw,34px)/1 var(--fd);color:var(--mid);pointer-events:none;}
.calc-in label:has(.pre) input{padding-left:clamp(38px,3.4vw,46px);}
.calc-hint{font-family:var(--fm);font-size:10.5px;letter-spacing:.6px;color:var(--mid);}
.calc-out{padding:clamp(22px,3vw,44px);display:flex;flex-direction:column;justify-content:center;gap:10px;
  background:radial-gradient(70% 80% at 85% 10%,rgba(216,255,54,.08),transparent 70%);}
.co-row{display:flex;flex-direction:column;gap:6px;padding-bottom:16px;border-bottom:1px solid var(--line);}
.co-row span{font-family:var(--fm);font-size:10.5px;letter-spacing:2.2px;text-transform:uppercase;color:var(--dim);}
.co-row b{font-weight:900;letter-spacing:-.04em;line-height:.95;font-size:clamp(36px,4vw,60px);font-variant-numeric:tabular-nums;}
.co-row.big b{color:var(--acid);font-size:clamp(48px,6.4vw,104px);}
.co-row.big{border-bottom:0;}
.co-note{color:#c9c9d1;font-size:15px;line-height:1.55;max-width:44ch;}
.co-note a{color:var(--acid);border-bottom:1px solid rgba(216,255,54,.4);}
.co-note a:hover{border-bottom-color:var(--acid);}
@media(max-width:900px){.calc{grid-template-columns:1fr;}.calc-in{border-right:0;border-bottom:1px solid var(--line);}}

/* ---------- 05 example: the Northside banner from backend.css ---------- */

/* ---------- 06 how the switch works ---------- */
.steps{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(12px,1.6vw,22px);counter-reset:none;}
.steps li{position:relative;display:flex;flex-direction:column;gap:10px;padding:22px 0 0;border-top:2px solid var(--line-2);}
.steps li::before{content:"";position:absolute;left:0;top:-2px;height:2px;width:34%;background:var(--acid);}
.st-n{font-family:var(--fm);font-size:11px;letter-spacing:2.4px;color:var(--acid);}
.steps b{font-weight:800;font-size:clamp(19px,1.7vw,24px);letter-spacing:-.02em;line-height:1.15;}
.steps p{color:var(--dim);font-size:15px;line-height:1.55;}
@media(max-width:900px){.steps{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:34px;}}
@media(max-width:520px){.steps{grid-template-columns:1fr;row-gap:26px;}}

/* ---------- 07 keep or replace ---------- */
.kr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid var(--line);}
.kr-col{padding:clamp(22px,3vw,44px);display:flex;flex-direction:column;gap:16px;}
.kr-col + .kr-col{border-left:1px solid var(--line);}
.kr-k{font-family:var(--fm);font-size:10.5px;letter-spacing:2.6px;text-transform:uppercase;color:var(--dim);}
.swap .kr-k{color:var(--acid);}
.kr ul{list-style:none;display:flex;flex-direction:column;}
.kr li{display:flex;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid var(--line);font-weight:600;font-size:clamp(15.5px,1.3vw,18px);}
.kr li::before{content:"";flex:none;width:18px;height:18px;border:1px solid var(--line-2);}
.keep li::before{background:linear-gradient(transparent 8px,var(--dim) 8px 10px,transparent 10px);}
.swap li::before{border-color:var(--acid);background:var(--acid) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2308080a' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/70% no-repeat;}
.kr-foot{grid-column:1/-1;padding:16px clamp(22px,3vw,44px);border-top:1px solid var(--line);color:var(--dim);font-size:14.5px;}
@media(max-width:760px){.kr{grid-template-columns:1fr;}.kr-col + .kr-col{border-left:0;border-top:1px solid var(--line);}}

/* ---------- contact ---------- */
.cs .contact h2{font-size:clamp(40px,7.6vw,124px);}
.cs-ask{margin-top:clamp(20px,2.6vw,30px);max-width:46ch;color:#c9c9d1;font-size:clamp(15.5px,1.3vw,18px);line-height:1.55;}
.cs-btn{margin-top:24px;display:inline-flex;align-items:center;gap:10px;padding:16px 24px 16px 18px;border:0;border-radius:999px;cursor:pointer;
  font-family:var(--fm);font-size:12px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:#08080a;background:var(--acid);
  box-shadow:0 0 0 6px rgba(216,255,54,.14);transition:transform .25s var(--ease),box-shadow .25s var(--ease);}
.cs-btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round;}
.cs-btn:hover{transform:translateY(-2px);box-shadow:0 0 0 8px rgba(216,255,54,.18);}

@media (prefers-reduced-motion:reduce){
  .cs-cue i{animation:none;}
  .bill span::after,.bill span,.sys-nav li,.sys-nav li::before{transition:none;}
}
