/* ===================== BCMS Design Tokens ===================== */
:root{
  --navy:#0A1A33;
  --navy-deep:#061224;
  --royal:#1F4FD6;
  --cyan:#19B4E0;
  --silver:#EEF1F6;
  --silver-line:#DCE2EC;
  --gold:#C9A84C;
  --ink:#101826;
  --ink-soft:#4A5568;
  --white:#FFFFFF;
  --radius:14px;
  --green:#1E9E63;
  --amber:#C97A1F;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{font-family:'Inter',sans-serif;color:var(--ink);background:var(--white);line-height:1.6;-webkit-font-smoothing:antialiased;}
h1,h2,h3,h4{font-family:'Sora',sans-serif;color:var(--navy);letter-spacing:-0.01em;}
.mono{font-family:'JetBrains Mono',monospace;}
a{text-decoration:none;color:inherit;}
ul{list-style:none;}
img{max-width:100%;display:block;}
button{font-family:inherit;}
.wrap{max-width:1180px;margin:0 auto;padding:0 24px;}
.eyebrow{font-family:'JetBrains Mono',monospace;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--cyan);font-weight:600;}
section{padding:96px 0;}
@media(max-width:720px){section{padding:60px 0;}}
.center{text-align:center;margin-left:auto;margin-right:auto;}
.bg-silver{background:var(--silver);}
.bg-navy{background:var(--navy);color:#fff;}

/* Reusable "drop a real photo in" slot: shows the image if the file exists,
   falls back to a branded gradient tile with a label if it doesn't. */
.img-slot{position:relative;overflow:hidden;background:linear-gradient(135deg,var(--royal),var(--cyan));}
.img-slot img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;}
.img-slot.img-fallback img{display:none;}
.img-slot .img-fallback-label{display:none;position:absolute;inset:0;align-items:center;justify-content:center;text-align:center;padding:10px;font-family:'JetBrains Mono',monospace;font-size:.7rem;color:rgba(255,255,255,.75);letter-spacing:.04em;}
.img-slot.img-fallback .img-fallback-label{display:flex;}
.bg-navy .eyebrow{color:var(--cyan);}
.bg-navy .sec-head p{color:rgba(255,255,255,.65);}
.bg-navy h2, .bg-navy h3{color:#fff;}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:8px;padding:14px 26px;border-radius:999px;font-weight:600;font-size:.95rem;border:1px solid transparent;cursor:pointer;transition:transform .18s ease, box-shadow .18s ease, background .18s ease;}
.btn-primary{background:var(--royal);color:#fff;box-shadow:0 8px 20px rgba(31,79,214,.28);}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(31,79,214,.36);}
.btn-ghost{background:transparent;color:var(--navy);border-color:var(--silver-line);}
.btn-ghost:hover{border-color:var(--royal);color:var(--royal);}
.btn-gold{background:linear-gradient(135deg,#E4C767,var(--gold));color:#1a1400;box-shadow:0 8px 20px rgba(201,168,76,.3);}
.btn-gold:hover{transform:translateY(-2px);}
.btn-on-dark{border-color:rgba(255,255,255,.35);color:#fff;}
.btn-on-dark:hover{border-color:var(--cyan);color:var(--cyan);}
.btn-sm{padding:10px 18px;font-size:.85rem;}
.btn-block{width:100%;justify-content:center;}
.btn[disabled]{opacity:.55;cursor:not-allowed;}

/* Header */
header{position:fixed;top:0;left:0;right:0;z-index:100;background:rgba(10,26,51,.88);backdrop-filter:blur(10px);border-bottom:1px solid rgba(255,255,255,.06);}
.nav{display:flex;align-items:center;justify-content:space-between;padding:14px 24px;max-width:1180px;margin:0 auto;}
.logo{display:flex;align-items:center;gap:10px;font-family:'Sora',sans-serif;font-weight:800;color:#fff;font-size:1.2rem;}
.logo .mark{width:32px;height:32px;border-radius:9px;background:linear-gradient(135deg,var(--cyan),var(--royal));display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:800;color:#fff;flex-shrink:0;}
.logo .logo-icon{width:38px;height:38px;object-fit:contain;flex-shrink:0;filter:drop-shadow(0 2px 6px rgba(0,0,0,.25));}
.logo img.logo-icon{border-radius:0;}
@media(max-width:480px){.logo .logo-icon{width:32px;height:32px;}}
.navlinks{display:flex;gap:22px;align-items:center;}
.navlinks a{color:rgba(255,255,255,.78);font-size:.88rem;font-weight:500;transition:color .15s;white-space:nowrap;}
.navlinks a:hover, .navlinks a.active{color:var(--cyan);}
.navcta{display:flex;gap:10px;align-items:center;}
.nav-login-btn{display:inline-flex;align-items:center;gap:7px;}
.nav-login-btn .login-icon{flex-shrink:0;}
.burger{display:none;background:none;border:none;color:#fff;font-size:1.5rem;cursor:pointer;}
@media(max-width:1080px){
  .navlinks{position:fixed;top:62px;left:0;right:0;background:var(--navy-deep);flex-direction:column;padding:20px 24px;gap:16px;display:none;border-bottom:1px solid rgba(255,255,255,.08);align-items:flex-start;max-height:80vh;overflow-y:auto;}
  .navlinks.open{display:flex;}
  .burger{display:block;}
  /* Login collapses to a compact icon button instead of disappearing */
  .navcta{gap:8px;}
  .nav-login-btn{padding:9px;width:36px;height:36px;justify-content:center;border-radius:50%;flex-shrink:0;}
  .nav-login-btn .full-label{display:none;}
  /* "Get Free Consultation" stays the dominant mobile CTA */
  .navcta a.btn-primary{
    padding:13px 18px;
    font-size:.86rem;
    font-weight:700;
    box-shadow:0 6px 18px rgba(31,79,214,.4);
  }
}
.navcta .short-label{display:none;}
@media(max-width:480px){
  .nav{padding:12px 16px;}
  .logo{font-size:1.05rem;}
  .nav-login-btn{width:34px;height:34px;padding:8px;}
  .navcta a.btn-primary{
    padding:12px 16px;
    font-size:.82rem;
  }
  .navcta .full-label{display:none;}
  .navcta .short-label{display:inline;}
}
@media(max-width:360px){
  .navcta a.btn-primary{padding:10px 12px;font-size:.76rem;}
  .nav-login-btn{width:32px;height:32px;padding:7px;}
}

/* Page hero (inner pages) */
.page-hero{background:radial-gradient(ellipse at 20% 0%, #12285a 0%, var(--navy) 45%, var(--navy-deep) 100%);color:#fff;padding:150px 0 64px;position:relative;overflow:hidden;}
.page-hero::after{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.05) 1px, transparent 1px);background-size:26px 26px;opacity:.5;}
.page-hero .wrap{position:relative;z-index:2;}
.page-hero h1{color:#fff;font-size:clamp(1.9rem,3.6vw,2.7rem);margin-top:10px;}
.page-hero p{color:rgba(255,255,255,.68);max-width:600px;margin-top:14px;font-size:1.02rem;}
.breadcrumb{font-size:.8rem;color:rgba(255,255,255,.5);margin-bottom:6px;}
.breadcrumb a:hover{color:var(--cyan);}

/* Section headers */
.sec-head{max-width:640px;margin-bottom:48px;}
.sec-head h2{font-size:clamp(1.6rem,2.6vw,2.3rem);margin-top:10px;}
.sec-head p{color:var(--ink-soft);margin-top:12px;font-size:1.02rem;}

/* Hero (home) — background image slot: drop images/hero-photo.jpg in and it
   takes over automatically; until then the illustrated skyline (hero-bg.svg)
   shows through, so the layer is never broken/empty. */
.hero{
  position:relative;padding:150px 0 90px;color:#fff;overflow:hidden;
  background-image:
    linear-gradient(180deg, rgba(6,18,36,.80) 0%, rgba(6,18,36,.90) 55%, rgba(6,18,36,.97) 100%),
    url('../images/hero-photo.jpg'),
    url('../images/hero-bg.svg');
  background-size:cover, cover, cover;
  background-position:center, center, center 70%;
  background-repeat:no-repeat, no-repeat, no-repeat;
}
.hero::after{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.05) 1px, transparent 1px);background-size:26px 26px;opacity:.4;pointer-events:none;}
.hero-inner{max-width:680px;position:relative;z-index:2;}
@media(max-width:720px){
  .hero{
    padding:120px 0 64px;
    background-position:center, center, center bottom;
  }
  .hero-inner{max-width:100%;}
  .hero p.lead{font-size:.98rem;max-width:100%;}
  .hero-ctas{gap:10px;}
  .hero-ctas .btn{flex:1 1 auto;justify-content:center;font-size:.88rem;padding:13px 18px;}
  .stat-row{gap:22px;margin-top:34px;}
  .stat b{font-size:1.35rem;}
  .stat span{font-size:.74rem;}
}
@media(max-width:420px){
  .hero{padding:112px 0 52px;}
  .stat-row{gap:16px;}
}
.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:center;position:relative;z-index:2;}
@media(max-width:920px){.hero-grid{grid-template-columns:1fr;}}
.hero h1{font-size:clamp(2.1rem,4.2vw,3.4rem);color:#fff;line-height:1.12;margin:16px 0 20px;font-weight:800;}
.hero p.lead{color:rgba(255,255,255,.72);font-size:1.08rem;max-width:520px;margin-bottom:32px;}
.hero-ctas{display:flex;gap:14px;flex-wrap:wrap;}
.stat-row{display:flex;gap:40px;margin-top:52px;flex-wrap:wrap;position:relative;z-index:2;}
.stat b{display:block;font-family:'Sora',sans-serif;font-size:1.7rem;color:#fff;}
.stat span{color:rgba(255,255,255,.6);font-size:.82rem;}

/* Roadmap signature element */
.roadmap{position:relative;padding:20px 6px;}
.roadmap svg{width:100%;height:auto;overflow:visible;}
.roadmap-path{stroke-dasharray:900;stroke-dashoffset:900;animation:draw 2.4s ease forwards .3s;}
@keyframes draw{to{stroke-dashoffset:0;}}
.roadmap-dot{opacity:0;animation:fadeUp .6s ease forwards;}
.roadmap-dot:nth-child(3){animation-delay:.9s;}
.roadmap-dot:nth-child(4){animation-delay:1.5s;}
.roadmap-dot:nth-child(5){animation-delay:2.1s;}
@keyframes fadeUp{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:translateY(0);}}
.roadmap-label{font-family:'JetBrains Mono',monospace;font-size:.68rem;fill:rgba(255,255,255,.65);letter-spacing:.05em;}
.roadmap-stage{font-family:'Sora',sans-serif;font-size:.82rem;font-weight:700;fill:#fff;}
@media(prefers-reduced-motion: reduce){.roadmap-path{animation:none;stroke-dashoffset:0;}.roadmap-dot{animation:none;opacity:1;}}

/* About */
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start;}
@media(max-width:820px){.about-grid{grid-template-columns:1fr;}}
.mv-card{background:var(--silver);border-radius:var(--radius);padding:26px;margin-bottom:18px;border:1px solid var(--silver-line);}
.mv-card h4{font-size:1rem;margin-bottom:8px;color:var(--royal);}
.mv-card p{color:var(--ink-soft);font-size:.95rem;}
.about-photo{border-radius:var(--radius);overflow:hidden;min-height:340px;background:linear-gradient(135deg,var(--navy),var(--royal));position:relative;}
.about-photo img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;}
.about-photo.img-fallback{background:linear-gradient(135deg,var(--navy) 0%,var(--royal) 60%,var(--cyan) 100%);}
.about-photo.img-fallback img{display:none;}
.about-photo.img-fallback::after{content:"BCMS";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:'Sora',sans-serif;font-weight:800;font-size:1.6rem;color:rgba(255,255,255,.5);letter-spacing:.06em;}

/* Feature grid */
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
@media(max-width:920px){.grid-4{grid-template-columns:repeat(2,1fr);}}
@media(max-width:520px){.grid-4{grid-template-columns:1fr;}}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
@media(max-width:920px){.grid-3{grid-template-columns:1fr;}}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
@media(max-width:720px){.grid-2{grid-template-columns:1fr;}}
.feat{padding:26px 22px;border:1px solid var(--silver-line);border-radius:var(--radius);transition:box-shadow .2s, transform .2s;background:#fff;}
.feat:hover{box-shadow:0 14px 30px rgba(10,26,51,.08);transform:translateY(-3px);}
.feat .ico{width:42px;height:42px;border-radius:10px;background:linear-gradient(135deg,var(--cyan),var(--royal));margin-bottom:14px;}
.feat h4{font-size:1.02rem;margin-bottom:6px;}
.feat p{font-size:.88rem;color:var(--ink-soft);}

/* Services */
.svc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;}
@media(max-width:980px){.svc-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:560px){.svc-grid{grid-template-columns:1fr;}}
.svc{background:var(--white);border:1px solid var(--silver-line);border-radius:var(--radius);padding:24px;}
.svc .num{font-family:'JetBrains Mono',monospace;color:var(--gold);font-weight:600;font-size:.85rem;}
.svc h4{margin:10px 0 8px;font-size:1.02rem;}
.svc p{font-size:.87rem;color:var(--ink-soft);}
.svc a{font-size:.82rem;font-weight:600;color:var(--royal);margin-top:10px;display:inline-block;}

/* Service detail block (services.html) */
.svc-block{border:1px solid var(--silver-line);border-radius:var(--radius);padding:36px;margin-bottom:24px;}
.svc-block .num-badge{font-family:'JetBrains Mono',monospace;color:var(--gold);font-size:.8rem;font-weight:700;letter-spacing:.08em;}
.svc-block h3{font-size:1.4rem;margin:8px 0 14px;}
.svc-block .desc{color:var(--ink-soft);margin-bottom:20px;max-width:760px;}
.svc-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;}
@media(max-width:820px){.svc-cols{grid-template-columns:1fr;}}
.svc-cols h5{font-size:.82rem;text-transform:uppercase;letter-spacing:.06em;color:var(--navy);margin-bottom:10px;}
.svc-cols li{font-size:.87rem;color:var(--ink-soft);padding:5px 0;border-bottom:1px dashed var(--silver-line);}
.svc-cols li:last-child{border-bottom:none;}
.svc-block .tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px;}
.svc-foot{display:flex;justify-content:space-between;align-items:center;margin-top:24px;flex-wrap:wrap;gap:16px;}

/* Chips */
.chips{display:flex;flex-wrap:wrap;gap:12px;}
.chip{padding:10px 18px;border:1px solid var(--silver-line);border-radius:999px;font-size:.86rem;font-weight:500;color:var(--navy);background:#fff;transition:.15s;}
.chip:hover{border-color:var(--cyan);color:var(--royal);background:#F0FAFF;}
.chip-sm{padding:5px 12px;font-size:.75rem;}

/* Industry cards */
.ind-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
@media(max-width:920px){.ind-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:600px){.ind-grid{grid-template-columns:1fr;}}
.ind-card{border:1px solid var(--silver-line);border-radius:var(--radius);padding:26px;background:#fff;}
.ind-card .tag{font-family:'JetBrains Mono',monospace;font-size:.68rem;color:var(--cyan);letter-spacing:.08em;text-transform:uppercase;}
.ind-card h4{margin:8px 0 8px;font-size:1.05rem;}
.ind-card p{font-size:.86rem;color:var(--ink-soft);margin-bottom:14px;}
.ind-card ul li{font-size:.82rem;color:var(--ink-soft);padding:3px 0;}
.ind-card ul li::before{content:"— ";color:var(--gold);}

/* Org */
.org{display:flex;flex-direction:column;align-items:center;gap:0;}
.org-tier{display:flex;justify-content:center;gap:16px;flex-wrap:wrap;padding:22px 0;}
.org-node{background:#fff;border:1px solid var(--silver-line);border-radius:12px;padding:14px 20px;font-size:.88rem;font-weight:600;color:var(--navy);text-align:center;min-width:150px;box-shadow:0 4px 14px rgba(10,26,51,.05);}
.org-node.top{background:var(--navy);color:#fff;min-width:220px;font-size:.95rem;}
.org-node span{display:block;font-weight:400;color:var(--ink-soft);font-size:.76rem;margin-top:3px;}
.org-node.top span{color:rgba(255,255,255,.65);}
.org-connector{width:1px;height:26px;background:var(--silver-line);}

/* Pricing */
.price-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
@media(max-width:920px){.price-grid{grid-template-columns:1fr;}}
.price-card{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius);padding:30px 26px;display:flex;flex-direction:column;position:relative;}
.price-card.feat-card{border-color:var(--gold);background:rgba(201,168,76,.08);}
.price-card .badge{position:absolute;top:-13px;right:24px;background:var(--gold);color:#1a1400;font-size:.7rem;font-weight:700;padding:5px 12px;border-radius:999px;}
.price-stage{font-family:'JetBrains Mono',monospace;font-size:.72rem;color:var(--cyan);letter-spacing:.1em;text-transform:uppercase;margin-bottom:8px;}
.price-card h3{color:#fff;font-size:1.2rem;margin-bottom:4px;}
.price-amt{font-family:'Sora',sans-serif;font-size:2.1rem;font-weight:800;color:#fff;margin:14px 0 4px;}
.price-amt span{font-size:.9rem;font-weight:500;color:rgba(255,255,255,.55);}
.price-sub{font-size:.82rem;color:rgba(255,255,255,.5);margin-bottom:20px;}
.price-list{margin:0 0 26px;}
.price-list li{font-size:.87rem;color:rgba(255,255,255,.8);padding:7px 0;border-bottom:1px dashed rgba(255,255,255,.08);}
.price-list li:last-child{border-bottom:none;}
.price-card .btn{margin-top:auto;justify-content:center;}
.support-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:22px;}
@media(max-width:820px){.support-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:520px){.support-grid{grid-template-columns:1fr;}}
.support-card{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:20px;text-align:center;}
.support-card .amt{font-family:'Sora',sans-serif;font-size:1.4rem;font-weight:800;color:var(--cyan);margin:6px 0;}
.support-card p{font-size:.78rem;color:rgba(255,255,255,.55);}

/* Membership */
.mem-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
@media(max-width:1080px){.mem-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:640px){.mem-grid{grid-template-columns:1fr;}}
.mem-card{border:1px solid var(--silver-line);border-radius:var(--radius);padding:30px 26px;background:#fff;display:flex;flex-direction:column;}
.mem-card.pop{border-color:var(--gold);box-shadow:0 16px 34px rgba(201,168,76,.18);position:relative;}
.mem-card.pop::before{content:"Most popular";position:absolute;top:-13px;right:24px;background:var(--gold);color:#1a1400;font-size:.7rem;font-weight:700;padding:5px 12px;border-radius:999px;}
.mem-card h3{font-size:1.15rem;}
.mem-price{font-family:'Sora',sans-serif;font-size:1.9rem;font-weight:800;color:var(--navy);margin:14px 0 4px;}
.mem-price span{font-size:.85rem;color:var(--ink-soft);font-weight:500;}
.mem-card ul{margin:18px 0 24px;}
.mem-card li{font-size:.87rem;color:var(--ink-soft);padding:6px 0;border-bottom:1px dashed var(--silver-line);}
.mem-card li:last-child{border-bottom:none;}
.mem-card .btn{margin-top:auto;}

/* Forms */
.form-card{background:#fff;border:1px solid var(--silver-line);border-radius:var(--radius);padding:36px;max-width:720px;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px;}
@media(max-width:600px){.form-row{grid-template-columns:1fr;}}
.field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px;}
.field label{font-size:.82rem;font-weight:600;color:var(--navy);}
.field input, .field select, .field textarea{
  border:1px solid var(--silver-line);border-radius:10px;padding:12px 14px;font-family:inherit;font-size:.92rem;color:var(--ink);background:#fbfcfe;
}
.field input:focus, .field select:focus, .field textarea:focus{outline:2px solid var(--cyan);outline-offset:1px;border-color:var(--cyan);}
.field textarea{resize:vertical;min-height:110px;}
.field-file{border:1.5px dashed var(--silver-line);border-radius:10px;padding:22px;text-align:center;font-size:.85rem;color:var(--ink-soft);cursor:pointer;transition:.15s;}
.field-file:hover{border-color:var(--cyan);color:var(--royal);}
.form-note{font-size:.8rem;color:var(--ink-soft);margin-top:14px;}
.form-success{display:none;background:#EAF9F0;border:1px solid var(--green);color:#0d6b3d;padding:16px 18px;border-radius:10px;font-size:.9rem;margin-top:18px;}
.form-success.show{display:block;}

/* FAQ accordion */
.faq-list{max-width:760px;}
.faq-item{border-bottom:1px solid var(--silver-line);}
.faq-q{width:100%;text-align:left;background:none;border:none;padding:20px 0;display:flex;justify-content:space-between;align-items:center;font-family:'Sora',sans-serif;font-weight:600;font-size:.98rem;color:var(--navy);cursor:pointer;}
.faq-q .plus{transition:transform .2s;font-size:1.3rem;color:var(--cyan);}
.faq-item.open .faq-q .plus{transform:rotate(45deg);}
.faq-a{max-height:0;overflow:hidden;transition:max-height .25s ease;font-size:.9rem;color:var(--ink-soft);}
.faq-item.open .faq-a{max-height:280px;padding-bottom:20px;}
.faq-cat{margin-bottom:10px;}

/* Blog */
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
@media(max-width:920px){.blog-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:600px){.blog-grid{grid-template-columns:1fr;}}
.blog-card{border:1px solid var(--silver-line);border-radius:var(--radius);overflow:hidden;background:#fff;}
.blog-thumb{height:150px;background:linear-gradient(135deg,var(--royal),var(--cyan));}
.blog-body{padding:20px;}
.blog-tag{font-family:'JetBrains Mono',monospace;font-size:.68rem;color:var(--royal);text-transform:uppercase;letter-spacing:.06em;}
.blog-body h4{font-size:1rem;margin:8px 0;}
.blog-body p{font-size:.85rem;color:var(--ink-soft);}
.blog-meta{font-size:.76rem;color:var(--ink-soft);margin-top:12px;}

/* Success stories */
.story-card{border:1px solid var(--silver-line);border-radius:var(--radius);padding:26px;background:#fff;}
.story-quote{font-size:.95rem;color:var(--ink);margin-bottom:16px;}
.story-name{font-weight:700;font-size:.88rem;color:var(--navy);}
.story-role{font-size:.78rem;color:var(--ink-soft);}
.story-metric{display:inline-block;background:var(--silver);border-radius:999px;padding:5px 12px;font-size:.75rem;font-weight:600;color:var(--royal);margin-top:12px;}

/* Quiz */
.quiz-card{background:#fff;border:1px solid var(--silver-line);border-radius:var(--radius);padding:36px;max-width:680px;}
.quiz-progress{height:6px;background:var(--silver);border-radius:999px;overflow:hidden;margin-bottom:28px;}
.quiz-progress-bar{height:100%;background:linear-gradient(90deg,var(--cyan),var(--royal));width:12.5%;transition:width .3s;}
.quiz-step{display:none;}
.quiz-step.active{display:block;}
.quiz-step h3{font-size:1.1rem;margin-bottom:18px;}
.quiz-opt{display:block;width:100%;text-align:left;padding:14px 18px;border:1px solid var(--silver-line);border-radius:10px;margin-bottom:10px;background:#fbfcfe;cursor:pointer;font-size:.9rem;transition:.15s;}
.quiz-opt:hover{border-color:var(--cyan);}
.quiz-opt.selected{border-color:var(--royal);background:#EEF3FF;font-weight:600;}
.quiz-nav{display:flex;justify-content:space-between;margin-top:24px;}
.quiz-result{display:none;text-align:center;}
.quiz-result.active{display:block;}
.score-ring{width:150px;height:150px;border-radius:50%;background:conic-gradient(var(--cyan) 0deg, var(--silver-line) 0deg);display:flex;align-items:center;justify-content:center;margin:0 auto 20px;}
.score-ring span{background:#fff;width:118px;height:118px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:'Sora',sans-serif;font-size:1.8rem;font-weight:800;color:var(--navy);}

/* Dashboard shell */
.dash{display:grid;grid-template-columns:230px 1fr;min-height:100vh;}
@media(max-width:820px){.dash{grid-template-columns:1fr;}}
.dash-side{background:var(--navy-deep);color:#fff;padding:24px 18px;}
.dash-side .logo{margin-bottom:30px;}
.dash-side a{display:block;padding:10px 12px;border-radius:8px;font-size:.86rem;color:rgba(255,255,255,.72);margin-bottom:4px;}
.dash-side a:hover, .dash-side a.active{background:rgba(255,255,255,.08);color:#fff;}
.dash-main{padding:32px;background:var(--silver);}
.dash-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:26px;flex-wrap:wrap;gap:12px;}
.dash-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:28px;}
@media(max-width:980px){.dash-cards{grid-template-columns:repeat(2,1fr);}}
@media(max-width:520px){.dash-cards{grid-template-columns:1fr;}}
.dash-card{background:#fff;border:1px solid var(--silver-line);border-radius:12px;padding:20px;}
.dash-card .val{font-family:'Sora',sans-serif;font-size:1.5rem;font-weight:800;color:var(--navy);}
.dash-card .lbl{font-size:.78rem;color:var(--ink-soft);}
.dash-panel{background:#fff;border:1px solid var(--silver-line);border-radius:12px;padding:22px;margin-bottom:20px;}
.dash-panel h3{font-size:1rem;margin-bottom:16px;}
table{width:100%;border-collapse:collapse;font-size:.85rem;}
th{text-align:left;color:var(--ink-soft);font-weight:600;padding:10px 8px;border-bottom:1px solid var(--silver-line);font-size:.76rem;text-transform:uppercase;letter-spacing:.04em;}
td{padding:12px 8px;border-bottom:1px solid var(--silver-line);color:var(--ink);}
.badge{display:inline-block;padding:4px 10px;border-radius:999px;font-size:.72rem;font-weight:600;}
.badge-green{background:#EAF9F0;color:var(--green);}
.badge-amber{background:#FDF3E7;color:var(--amber);}
.badge-blue{background:#EAF1FF;color:var(--royal);}

/* CTA banner */
.cta-banner{background:linear-gradient(120deg,var(--royal),#12327d);color:#fff;text-align:center;padding:70px 24px;border-radius:24px;}
.cta-banner h2{color:#fff;margin-bottom:14px;}
.cta-banner p{color:rgba(255,255,255,.78);margin-bottom:28px;}

/* Reusable modal (blog editor, services editor, etc.) */
.modal-overlay{position:fixed;inset:0;background:rgba(6,18,36,.55);display:none;align-items:center;justify-content:center;z-index:200;padding:20px;}
.modal-overlay.open{display:flex;}
.modal-card{background:#fff;border-radius:var(--radius);padding:30px;max-width:520px;width:100%;max-height:88vh;overflow-y:auto;box-shadow:0 30px 60px rgba(6,18,36,.35);}
.modal-card h3{font-size:1.1rem;margin-bottom:18px;}
.editing-field{outline:1.5px dashed var(--cyan);outline-offset:3px;border-radius:4px;background:#F0FAFF;}
.editing-field:focus{outline-color:var(--royal);background:#EEF3FF;}
footer{background:var(--navy-deep);color:rgba(255,255,255,.7);padding:60px 0 26px;}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:36px;margin-bottom:40px;}
@media(max-width:820px){.foot-grid{grid-template-columns:1fr 1fr;}}
footer h4{color:#fff;font-size:.92rem;margin-bottom:14px;}
footer ul li{margin-bottom:9px;font-size:.86rem;}
footer ul li a:hover{color:var(--cyan);}
.foot-bottom{border-top:1px solid rgba(255,255,255,.08);padding-top:20px;font-size:.8rem;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;}
