/* =============================================================
   NorthAxis — Light Theme Stylesheet
   AI-Powered Telecom Engineering · Fibre Optic Network Consulting
   ============================================================= */

/* ── Reset ── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

/* ── Design Tokens ── */
:root{
  --black:#f0f4f7;
  --deep:#f7f9fb;
  --surface:#ffffff;
  --border:#d6e0e8;
  --border2:#c0ced8;
  --text:#1a2e3d;
  --muted:#3d5a6e;
  --white:#040d13;
  --orange:#e04e00;
  --orange2:#f06820;
  --teal:#006858;
  --teal2:#008a78;
  --red:#cc2222;
  --gold:#00b4d8;
  --gold2:#48cae4;
}

/* ── Base ── */
html{scroll-behavior:smooth}
body{background:var(--black);color:var(--text);font-family:'Barlow',sans-serif;font-weight:300;overflow-x:hidden;cursor:none}

/* ── Custom Cursor ── */
.cursor{position:fixed;width:10px;height:10px;background:var(--orange);border-radius:50%;pointer-events:none;z-index:9999;transform:translate(-50%,-50%);transition:width .15s,height .15s,background .15s}
.cursor-ring{position:fixed;width:32px;height:32px;border:1px solid rgba(240,90,0,.4);border-radius:50%;pointer-events:none;z-index:9998;transform:translate(-50%,-50%);transition:all .08s}
body:has(a:hover) .cursor,.cursor.active{width:6px;height:6px;background:var(--teal)}
body:has(a:hover) .cursor-ring{width:44px;height:44px;border-color:rgba(0,212,180,.5)}

/* ── Animations ── */
@keyframes blink{0%,100%{opacity:1}50%{opacity:.2}}
@keyframes scrollDown{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
@keyframes fadeUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes dot{0%,80%,100%{transform:scale(1);opacity:.4}40%{transform:scale(1.3);opacity:1}}

/* ── Navigation ── */
nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:20px 48px;background:linear-gradient(180deg,rgba(240,244,247,.97) 0%,rgba(240,244,247,.0) 100%);backdrop-filter:blur(2px)}
.nav-logo{font-family:'Bebas Neue',sans-serif;font-size:1.5rem;letter-spacing:.08em;color:var(--white);text-decoration:none;display:flex;align-items:center;gap:10px}
.nav-logo-dot{width:8px;height:8px;background:var(--orange);border-radius:50%;animation:blink 2s infinite}
.nav-links{display:flex;gap:32px;list-style:none}
.nav-links a{color:var(--muted);text-decoration:none;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;transition:color .2s;font-weight:500}
.nav-links a:hover{color:var(--white)}
.nav-cta{background:var(--orange);color:#fff;padding:9px 20px;font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;font-weight:600;text-decoration:none;transition:background .2s}
.nav-cta:hover{background:var(--orange2)}

/* ── Hero ── */
.hero{position:relative;height:100vh;min-height:700px;display:flex;align-items:center;overflow:hidden}
canvas#fiber-canvas{position:absolute;inset:0;opacity:.45}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(135deg,rgba(240,244,247,.92) 0%,rgba(240,244,247,.6) 60%,transparent 100%)}
.hero-content{position:relative;z-index:2;padding:0 48px;max-width:800px}
.hero-badge{display:inline-flex;align-items:center;gap:8px;background:rgba(240,90,0,.12);border:1px solid rgba(240,90,0,.3);padding:6px 14px;font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;color:var(--orange);margin-bottom:24px;font-weight:500}
.hero-badge-dot{width:5px;height:5px;background:var(--orange);border-radius:50%;animation:blink 1.5s infinite}
h1.hero-title{font-family:'Bebas Neue',sans-serif;font-size:clamp(4rem,9vw,8rem);line-height:.95;letter-spacing:.02em;color:var(--white);margin-bottom:8px}
h1.hero-title span{color:var(--orange)}
.hero-sub{font-family:'Barlow Condensed',sans-serif;font-size:clamp(1.1rem,2.5vw,1.6rem);letter-spacing:.06em;text-transform:uppercase;color:var(--teal);margin-bottom:24px;font-weight:400}
.hero-desc{font-size:1rem;line-height:1.75;color:var(--text);max-width:520px;margin-bottom:40px;font-weight:300}
.hero-actions{display:flex;gap:16px;flex-wrap:wrap}
.btn-primary{background:var(--orange);color:#fff;padding:14px 32px;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;font-weight:600;text-decoration:none;transition:all .2s;border:none;cursor:pointer;font-family:'Barlow',sans-serif}
.btn-primary:hover{background:var(--orange2);transform:translateY(-1px)}
.btn-ghost{border:1px solid var(--border2);color:var(--text);padding:14px 32px;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;font-weight:500;text-decoration:none;transition:all .2s;font-family:'Barlow',sans-serif}
.btn-ghost:hover{border-color:var(--teal);color:var(--teal)}
.hero-stats{position:absolute;bottom:48px;left:48px;right:48px;z-index:2;display:flex;gap:48px;flex-wrap:wrap}
.hero-stat{border-left:2px solid var(--orange);padding-left:16px}
.stat-num{font-family:'Bebas Neue',sans-serif;font-size:2.2rem;color:var(--white);letter-spacing:.05em;line-height:1}
.stat-label{font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-top:2px}

/* ── Scroll Indicator ── */
.scroll-ind{position:absolute;bottom:48px;right:48px;z-index:2;display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--muted);font-size:.65rem;letter-spacing:.15em;text-transform:uppercase}
.scroll-line{width:1px;height:48px;background:linear-gradient(var(--orange),transparent);animation:scrollDown 2s infinite}

/* ── Section Shared ── */
section{position:relative}
.section-inner{max-width:1200px;margin:0 auto;padding:100px 48px}
.section-label{font-size:.65rem;letter-spacing:.25em;text-transform:uppercase;color:var(--orange);margin-bottom:12px;font-weight:600}
.section-title{font-family:'Bebas Neue',sans-serif;font-size:clamp(2.5rem,5vw,4rem);color:var(--white);letter-spacing:.03em;line-height:1.05}
.section-title span{color:var(--teal)}
.section-desc{font-size:.95rem;line-height:1.8;color:var(--text);max-width:560px;margin-top:16px}

/* ── Divider ── */
.divider{height:1px;background:linear-gradient(90deg,transparent,var(--border2),transparent)}

/* ── Services Grid ── */
#services{background:var(--deep)}
.services-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1px;background:var(--border);margin-top:56px;border:1px solid var(--border)}
.service-card{background:var(--deep);padding:36px 28px;transition:background .2s;position:relative;overflow:hidden}
.service-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--orange),var(--teal));transform:scaleX(0);transition:transform .3s;transform-origin:left}
.service-card:hover{background:var(--surface)}
.service-card:hover::before{transform:scaleX(1)}
.service-icon{font-size:1.8rem;margin-bottom:20px;display:block}
.service-num{font-family:'Bebas Neue',sans-serif;font-size:.9rem;letter-spacing:.1em;color:var(--orange);margin-bottom:8px}
.service-title{font-family:'Barlow Condensed',sans-serif;font-size:1.15rem;font-weight:600;color:var(--white);letter-spacing:.04em;margin-bottom:12px;text-transform:uppercase}
.service-desc{font-size:.85rem;line-height:1.75;color:var(--muted)}
.service-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:16px}
.stag{font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--border2);color:var(--muted);padding:3px 8px}

/* ── AI Workflow ── */
#workflow{background:var(--black)}
.workflow-container{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start;margin-top:56px}
@media(max-width:900px){.workflow-container{grid-template-columns:1fr}}
.workflow-steps{display:flex;flex-direction:column;gap:0}
.wstep{display:flex;gap:20px;padding:24px 0;border-bottom:1px solid var(--border);position:relative;cursor:pointer}
.wstep:last-child{border-bottom:none}
.wstep.active .wstep-num{background:var(--orange);color:#fff}
.wstep.active .wstep-title{color:var(--white)}
.wstep.active .wstep-desc{max-height:100px;opacity:1}
.wstep-num{width:36px;height:36px;border:1px solid var(--border2);display:flex;align-items:center;justify-content:center;font-family:'Bebas Neue',sans-serif;font-size:1rem;color:var(--muted);flex-shrink:0;transition:all .2s}
.wstep-content{flex:1}
.wstep-title{font-family:'Barlow Condensed',sans-serif;font-size:1rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:4px;transition:color .2s}
.wstep-ai{font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;color:var(--teal);margin-bottom:6px}
.wstep-desc{font-size:.83rem;line-height:1.7;color:var(--muted);max-height:0;opacity:0;overflow:hidden;transition:max-height .3s,opacity .3s}
.workflow-visual{background:var(--surface);border:1px solid var(--border);padding:28px;position:sticky;top:100px}
.wv-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--border)}
.wv-title{font-family:'Barlow Condensed',sans-serif;font-size:.75rem;letter-spacing:.15em;text-transform:uppercase;color:var(--muted)}
.wv-status{display:flex;align-items:center;gap:6px;font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;color:var(--teal)}
.wv-dot{width:5px;height:5px;background:var(--teal);border-radius:50%;animation:blink 1.5s infinite}
.wv-content{min-height:240px;display:flex;flex-direction:column;gap:8px}
.wv-line{height:1px;background:var(--border);margin:8px 0}
.permit-detail{display:flex;justify-content:space-between;font-size:.78rem;padding:6px 0}
.permit-key{color:var(--muted)}
.permit-val{color:var(--white);font-weight:500}
.permit-val.ok{color:var(--teal)}
.permit-val.warn{color:var(--orange)}
.permit-val.ai{color:var(--orange);font-style:italic}
.ai-insight{background:rgba(0,212,180,.07);border-left:2px solid var(--teal);padding:12px 14px;font-size:.8rem;line-height:1.65;color:var(--text);margin-top:8px}
.ai-insight-label{font-size:.62rem;letter-spacing:.15em;text-transform:uppercase;color:var(--teal);margin-bottom:4px}
.progress-bar-wrap{margin-top:12px}
.progress-label{display:flex;justify-content:space-between;font-size:.7rem;color:var(--muted);margin-bottom:6px}
.progress-bar{height:3px;background:var(--border);border-radius:2px;overflow:hidden}
.progress-fill{height:100%;border-radius:2px;background:linear-gradient(90deg,var(--orange),var(--teal));transition:width .5s}

/* ── AI Chat Assistant ── */
#ai-assistant{background:var(--deep)}
.chat-container{margin-top:56px;display:grid;grid-template-columns:340px 1fr;gap:1px;background:var(--border);border:1px solid var(--border)}
@media(max-width:900px){.chat-container{grid-template-columns:1fr}}
.chat-sidebar{background:var(--surface);padding:28px 24px}
.chat-sidebar-title{font-family:'Barlow Condensed',sans-serif;font-size:.75rem;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);margin-bottom:20px}
.quick-prompts{display:flex;flex-direction:column;gap:8px}
.qp{background:var(--deep);border:1px solid var(--border2);padding:12px 14px;font-size:.8rem;line-height:1.5;color:var(--text);cursor:pointer;transition:all .2s;text-align:left;font-family:'Barlow',sans-serif}
.qp:hover{border-color:var(--orange);color:var(--white);background:rgba(240,90,0,.06)}
.qp-label{font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;color:var(--teal);margin-bottom:4px}
.sidebar-divider{height:1px;background:var(--border);margin:20px 0}
.sidebar-info{font-size:.75rem;line-height:1.7;color:var(--muted)}
.chat-main{background:var(--deep);display:flex;flex-direction:column;height:580px}
.chat-header{padding:18px 24px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:12px}
.chat-avatar{width:32px;height:32px;background:linear-gradient(135deg,var(--orange),var(--teal));display:flex;align-items:center;justify-content:center;font-size:.9rem;color:#fff}
.chat-name{font-family:'Barlow Condensed',sans-serif;font-size:.9rem;letter-spacing:.06em;text-transform:uppercase;font-weight:600;color:var(--white)}
.chat-status{font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;color:var(--teal)}
.chat-messages{flex:1;overflow-y:auto;padding:24px;display:flex;flex-direction:column;gap:16px;scrollbar-width:thin;scrollbar-color:var(--border) transparent}
.msg{display:flex;gap:12px;animation:fadeUp .3s ease}
.msg.user{flex-direction:row-reverse}
.msg-avatar{width:28px;height:28px;border-radius:0;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:600;letter-spacing:.05em}
.msg.ai .msg-avatar{background:linear-gradient(135deg,var(--orange),var(--teal));color:#fff}
.msg.user .msg-avatar{background:var(--border2);color:var(--text)}
.msg-bubble{max-width:75%;padding:12px 16px;font-size:.83rem;line-height:1.7}
.msg.ai .msg-bubble{background:var(--surface);border:1px solid var(--border);color:var(--text);border-top-left-radius:0}
.msg.user .msg-bubble{background:rgba(240,90,0,.12);border:1px solid rgba(240,90,0,.25);color:var(--white);border-top-right-radius:0;text-align:right}
.msg-time{font-size:.62rem;color:var(--muted);margin-top:4px;letter-spacing:.05em}
.typing{display:flex;gap:4px;padding:4px 0}
.typing span{width:5px;height:5px;background:var(--muted);border-radius:50%;animation:dot .8s infinite}
.typing span:nth-child(2){animation-delay:.2s}
.typing span:nth-child(3){animation-delay:.4s}
.chat-input-area{padding:16px 24px;border-top:1px solid var(--border);display:flex;gap:10px}
.chat-input{flex:1;background:var(--surface);border:1px solid var(--border2);color:var(--white);padding:12px 16px;font-size:.85rem;font-family:'Barlow',sans-serif;outline:none;transition:border .2s;resize:none;height:44px}
.chat-input:focus{border-color:var(--orange)}
.chat-input::placeholder{color:var(--muted)}
.chat-send{background:var(--orange);border:none;color:#fff;padding:0 20px;cursor:pointer;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;font-family:'Barlow',sans-serif;font-weight:600;transition:background .2s;white-space:nowrap}
.chat-send:hover{background:var(--orange2)}
.chat-send:disabled{background:var(--border2);cursor:not-allowed}

/* ── Intake Form ── */
#intake{background:var(--black)}
.intake-container{display:grid;grid-template-columns:1fr 400px;gap:48px;margin-top:56px;align-items:start}
@media(max-width:1000px){.intake-container{grid-template-columns:1fr}}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--border);border:1px solid var(--border)}
.form-section{background:var(--deep);padding:28px}
.form-section.full{grid-column:1/-1}
.form-section-title{font-family:'Barlow Condensed',sans-serif;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--orange);margin-bottom:20px;padding-bottom:10px;border-bottom:1px solid var(--border)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}
.form-row.single{grid-template-columns:1fr}
.form-group{display:flex;flex-direction:column;gap:6px}
.form-label{font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.form-input,.form-select,.form-textarea{background:var(--surface);border:1px solid var(--border2);color:var(--white);padding:10px 14px;font-size:.85rem;font-family:'Barlow',sans-serif;outline:none;transition:border .2s;width:100%}
.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--orange)}
.form-select{appearance:none;cursor:pointer}
option{background:var(--surface)}
.form-textarea{resize:vertical;min-height:80px}
.form-submit{background:var(--orange);color:#fff;border:none;width:100%;padding:16px;font-size:.85rem;letter-spacing:.12em;text-transform:uppercase;font-weight:600;cursor:pointer;font-family:'Barlow',sans-serif;transition:background .2s;margin-top:4px}
.form-submit:hover{background:var(--orange2)}
.intake-sidebar{display:flex;flex-direction:column;gap:16px}
.intake-card{background:var(--surface);border:1px solid var(--border);padding:24px}
.intake-card-title{font-family:'Barlow Condensed',sans-serif;font-size:.75rem;letter-spacing:.15em;text-transform:uppercase;color:var(--teal);margin-bottom:12px}
.intake-card-body{font-size:.8rem;line-height:1.7;color:var(--muted)}
.process-step{display:flex;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}
.process-step:last-child{border-bottom:none}
.ps-num{font-family:'Bebas Neue',sans-serif;font-size:1.2rem;color:var(--orange);line-height:1;width:24px;flex-shrink:0}
.ps-content{font-size:.78rem;color:var(--muted);line-height:1.6}
.ps-title{color:var(--white);font-weight:500;margin-bottom:2px;font-size:.82rem}

/* ── Testimonials ── */
#proof{background:var(--deep)}
.proof-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1px;background:var(--border);border:1px solid var(--border);margin-top:56px}
.proof-card{background:var(--deep);padding:32px 28px}
.proof-quote{font-size:.9rem;line-height:1.8;color:var(--text);margin-bottom:20px;font-style:italic}
.proof-quote::before{content:'\201C';font-size:2rem;color:var(--orange);line-height:0;vertical-align:-.4em;margin-right:4px}
.proof-author{font-family:'Barlow Condensed',sans-serif;font-size:.85rem;letter-spacing:.06em;text-transform:uppercase;color:var(--white);font-weight:600}
.proof-role{font-size:.75rem;color:var(--muted);margin-top:2px}
.proof-stars{color:var(--orange);font-size:.8rem;margin-bottom:12px;letter-spacing:2px}

/* ── Footer ── */
footer{background:var(--black);border-top:1px solid var(--border);padding:64px 48px 32px}
.footer-inner{max-width:1200px;margin:0 auto}
.footer-top{display:grid;grid-template-columns:280px 1fr;gap:64px;margin-bottom:48px}
@media(max-width:800px){.footer-top{grid-template-columns:1fr}}
.footer-brand{font-family:'Bebas Neue',sans-serif;font-size:1.8rem;color:var(--white);letter-spacing:.05em;margin-bottom:12px}
.footer-desc{font-size:.82rem;line-height:1.75;color:var(--muted)}
.footer-links{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
.footer-col-title{font-size:.65rem;letter-spacing:.2em;text-transform:uppercase;color:var(--orange);margin-bottom:16px;font-weight:600}
.footer-col a{display:block;color:var(--muted);text-decoration:none;font-size:.82rem;margin-bottom:10px;transition:color .2s}
.footer-col a:hover{color:var(--white)}
.footer-bottom{border-top:1px solid var(--border);padding-top:24px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;font-size:.72rem;color:var(--muted)}

/* ── Utilities ── */
.teal{color:var(--teal)}
.orange{color:var(--orange)}

/* ── Pillar Section Dividers ── */
.pillar-divider{display:flex;align-items:center;gap:16px;margin:64px 0 32px}
.pillar-divider-line{flex:1;height:1px}
.pillar-divider.fibre .pillar-divider-line{background:linear-gradient(90deg,rgba(0,212,180,.4),transparent)}
.pillar-divider-label{font-family:'Bebas Neue',sans-serif;font-size:1rem;letter-spacing:.1em;white-space:nowrap;display:flex;align-items:center;gap:10px}
.pillar-divider.fibre .pillar-divider-label{color:var(--teal)}
.pillar-divider-badge{font-size:.6rem;letter-spacing:.15em;text-transform:uppercase;padding:3px 8px;font-family:'Barlow',sans-serif;font-weight:600}
.pillar-divider.fibre .pillar-divider-badge{border:1px solid rgba(0,212,180,.3);color:var(--teal);background:rgba(0,212,180,.08)}

/* ── Fibre Engineering Section ── */
#fibre-services{background:var(--black)}
#fibre-services .eng-card-accent{background:linear-gradient(180deg,var(--teal),var(--orange))}
#fibre-services .eng-card-num{color:var(--teal)}

/* ── Engineering Cards ── */
.eng-services{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border);border:1px solid var(--border)}
@media(max-width:800px){.eng-services{grid-template-columns:1fr 1fr}}
@media(max-width:500px){.eng-services{grid-template-columns:1fr}}
.eng-card{background:var(--deep);padding:28px 24px;position:relative;overflow:hidden;transition:background .2s}
#fibre-services .eng-card{background:var(--black)}
.eng-card:hover{background:var(--surface)}
.eng-card-accent{position:absolute;top:0;left:0;width:3px;height:0;transition:height .3s}
.eng-card:hover .eng-card-accent{height:100%}
.eng-card-icon{font-size:1.5rem;margin-bottom:16px}
.eng-card-num{font-size:.65rem;letter-spacing:.2em;text-transform:uppercase;margin-bottom:6px}
.eng-card-title{font-family:'Barlow Condensed',sans-serif;font-size:1rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--white);margin-bottom:10px}
.eng-card-desc{font-size:.8rem;line-height:1.7;color:var(--muted)}
.eng-card-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:12px}
.etag{font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--border2);color:var(--muted);padding:2px 7px}

/* ── Process Flow Pipeline ── */
.process-flow{display:grid;grid-template-columns:repeat(5,1fr);gap:0;border:1px solid var(--border);background:var(--border);margin-top:48px;position:relative}
@media(max-width:900px){.process-flow{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.process-flow{grid-template-columns:1fr}}
.pf-step{background:var(--black);padding:24px 20px;position:relative}
.pf-step::after{content:'→';position:absolute;right:-10px;top:50%;transform:translateY(-50%);color:var(--teal);font-size:1rem;z-index:2;background:var(--black);padding:4px}
.pf-step:last-child::after{display:none}
@media(max-width:900px){.pf-step::after{display:none}}
.pf-num{font-family:'Bebas Neue',sans-serif;font-size:2rem;color:rgba(0,212,180,.15);line-height:1;margin-bottom:8px}
.pf-title{font-family:'Barlow Condensed',sans-serif;font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--white);margin-bottom:6px}
.pf-desc{font-size:.75rem;line-height:1.65;color:var(--muted)}

/* ── 3D Viewer ── */
.viewer-wrap{position:relative;border:1px solid var(--border);background:var(--surface)}
canvas#model-canvas{display:block;width:100%;height:340px}
.viewer-hud{position:absolute;top:0;left:0;right:0;padding:14px 16px;display:flex;align-items:center;justify-content:space-between;background:linear-gradient(180deg,rgba(13,17,24,.95) 0%,transparent 100%);pointer-events:none}
.viewer-label{font-family:'Barlow Condensed',sans-serif;font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;color:var(--muted)}
.viewer-live{display:flex;align-items:center;gap:5px;font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gold)}
.viewer-controls{position:absolute;bottom:14px;right:14px;display:flex;gap:8px}
.vc-btn{background:rgba(240,244,247,.9);border:1px solid var(--border2);color:var(--muted);width:30px;height:30px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:.75rem;transition:all .2s;backdrop-filter:blur(4px)}
.vc-btn:hover{border-color:var(--gold);color:var(--gold)}
.viewer-axis{position:absolute;bottom:14px;left:14px;font-size:.62rem;letter-spacing:.08em;color:var(--muted);line-height:1.8;background:rgba(240,244,247,.85);padding:6px 10px;backdrop-filter:blur(4px);border:1px solid var(--border)}
.viewer-layer-tabs{display:flex;gap:1px;background:var(--border);border:1px solid var(--border);border-bottom:none}
.vtab{flex:1;padding:10px;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;text-align:center;color:var(--muted);cursor:pointer;background:var(--deep);transition:all .2s;border:none;font-family:'Barlow',sans-serif}
.vtab.active{background:var(--surface);color:var(--white)}
.vtab:hover:not(.active){color:var(--text);background:var(--surface)}

/* ── Deliverables Strip ── */
.deliverables-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--border);border:1px solid var(--border);margin-top:48px}
@media(max-width:700px){.deliverables-strip{grid-template-columns:1fr 1fr}}
.deliv-cell{padding:20px 18px;text-align:center}
#fibre-services .deliv-cell{background:var(--black)}
.deliv-icon{font-size:1.4rem;margin-bottom:8px}
.deliv-title{font-family:'Barlow Condensed',sans-serif;font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--white);margin-bottom:4px}
.deliv-sub{font-size:.72rem;color:var(--muted);line-height:1.5}

/* ── Software Strip ── */
.software-strip{margin-top:32px;padding:20px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:32px;flex-wrap:wrap}
.sw-label{font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);white-space:nowrap;flex-shrink:0}
.sw-items{display:flex;gap:24px;flex-wrap:wrap;align-items:center}
.sw-item{font-family:'Barlow Condensed',sans-serif;font-size:.85rem;letter-spacing:.06em;text-transform:uppercase;color:var(--border2);font-weight:600;transition:color .2s}
#fibre-services .sw-item:hover{color:var(--teal)}

/* ── Computer Vision Panel ── */
.cv-panel{background:rgba(0,212,180,.04);border:1px solid rgba(0,212,180,.18);padding:16px;margin-top:10px}
.cv-panel-header{display:flex;align-items:center;gap:8px;margin-bottom:12px}
.cv-panel-label{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--teal);font-weight:600}
.cv-scan-row{display:flex;align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid var(--border)}
.cv-scan-row:last-child{border-bottom:none}
.cv-scan-icon{font-size:.95rem;width:22px;text-align:center;flex-shrink:0}
.cv-scan-desc{font-size:.77rem;color:var(--text);flex:1;line-height:1.5}
.cv-scan-badge{font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;padding:2px 7px;white-space:nowrap;flex-shrink:0}
.cv-scan-badge.detected{background:rgba(0,212,180,.12);border:1px solid rgba(0,212,180,.35);color:var(--teal)}
.cv-scan-badge.flagged{background:rgba(240,90,0,.12);border:1px solid rgba(240,90,0,.35);color:var(--orange)}
.cv-scan-badge.verified{background:rgba(0,212,180,.08);border:1px solid rgba(0,212,180,.2);color:var(--teal)}
.cv-confidence{display:flex;align-items:center;gap:8px;margin-top:12px;padding-top:10px;border-top:1px solid var(--border)}
.cv-conf-label{font-size:.68rem;color:var(--muted);white-space:nowrap}
.cv-conf-bar{flex:1;height:3px;background:var(--border);border-radius:2px;overflow:hidden}
.cv-conf-fill{height:100%;border-radius:2px;background:linear-gradient(90deg,var(--teal),var(--teal2));width:94%}
.cv-conf-pct{font-size:.72rem;color:var(--teal);font-weight:600;white-space:nowrap}

/* ── GIS Design Ladder (LLD / HLD) ── */
.design-ladder{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--border);border:1px solid var(--border);margin-top:0}
@media(max-width:700px){.design-ladder{grid-template-columns:1fr}}
.dl-side{background:var(--black);padding:28px 24px}
.dl-side-label{font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--teal);margin-bottom:16px;padding-bottom:10px;border-bottom:1px solid var(--border);font-weight:600}
.dl-item{padding:12px 0;border-bottom:1px solid var(--border);display:flex;gap:12px}
.dl-item:last-child{border-bottom:none}
.dl-item-dot{width:6px;height:6px;background:var(--teal);border-radius:50%;margin-top:5px;flex-shrink:0}
.dl-item-title{font-family:'Barlow Condensed',sans-serif;font-size:.88rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--white);margin-bottom:3px}
.dl-item-desc{font-size:.76rem;line-height:1.6;color:var(--muted)}
