h1:focus {
    outline: none;
}

.valid.modified:not([type=checkbox]) {
    outline: 1px solid #26b050;
}

.invalid {
    outline: 1px solid #e50000;
}

.validation-message {
    color: #e50000;
}

.blazor-error-boundary {
    background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1zbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
    padding: 1rem 1rem 1rem 3.7rem;
    color: white;
}

    .blazor-error-boundary::after {
        content: "An error has occurred."
    }

.darker-border-checkbox.form-check-input {
    border-color: #929292;
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
    color: var(--bs-secondary-color);
    text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
    text-align: start;
}

/* White Birch site styles */
:root{
    --wb-navy:#0b3140;
    --wb-green:#1f8a4b;
    --wb-blue:#0b6ba8;
    --wb-offwhite:#f7fbfc;
}
.wb-container{max-width:1180px;margin:0 auto;padding:0 1rem}

/* Typography: modern system sans stack, prefer Segoe UI */
html,body{font-family: "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;color:var(--wb-navy);}

html{scroll-behavior:smooth}

#home, #services, #how-we-work, #about{scroll-margin-top:1.5rem}

.wb-header{background:rgba(255,255,255,0.80);padding:0.9rem 0;position:fixed;left:0;right:0;top:0;z-index:20;backdrop-filter: blur(3px);border-bottom:1px solid rgba(11,49,64,0.04);transition:background 0.25s ease, box-shadow 0.25s ease, padding 0.25s ease}

.wb-header.wb-header-scrolled{background:rgba(255,255,255,0.97);box-shadow:0 4px 20px rgba(11,49,64,0.08);padding:0.6rem 0}

.wb-header::before{display:none !important}

.wb-header img[src*="header-branch"], .wb-header .header-branch { display: none !important }

/* Ensure header content (logo / nav) stays on top */
.wb-header .wb-logo, .wb-header .logo { position:relative; z-index:21 }
.wb-header-inner{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:1rem}
.wb-logo img{height:88px;display:block}
.wb-nav{display:flex;gap:1.25rem;justify-self:center}
.wb-nav-link{color:rgba(11,49,64,0.9);text-decoration:none;font-weight:500;font-size:0.98rem;letter-spacing:0.01em;padding:8px 6px}
.wb-header-cta{justify-self:end}
.wb-btn{display:inline-flex;align-items:center;gap:0.6rem;padding:0.6rem 1.1rem;border-radius:999px;border:1px solid transparent;text-decoration:none;font-weight:600}
.wb-btn-primary{background:var(--wb-navy);color:white;box-shadow:0 6px 18px rgba(11,49,64,0.08)}
.wb-btn-primary:hover{transform:translateY(-1px)}
.wb-btn-secondary{background:transparent;color:var(--wb-navy);border-color:rgba(11,49,64,0.08)}

.wb-main{background:var(--wb-offwhite);min-height:60vh;padding-bottom:3rem;padding-top:110px}

.wb-hero{padding:2rem 0}
.wb-hero{padding:2rem 0}
.wb-hero-inner{display:grid;grid-template-columns:1fr;gap:0;align-items:center;justify-items:center;position:relative;z-index:2}
.wb-hero-left{max-width:880px;padding:1rem 0}
.wb-hero-heading{max-width:44ch}

/* Hero background image */
.wb-hero{
    position:relative;
    overflow:visible;
}

/* Decorative photographic background applied in a pseudo-element so we can control filters and layering reliably.
   Pulled up by the header height (110px, see .wb-main padding-top) so the same image continues
   behind the translucent header instead of being a separate image. */
.wb-hero::before{
    content: "";
    position:absolute;
    right:0;
    top:-110px;
    height:calc(100% + 110px);
    width:48%;
    pointer-events:none;
    background-image: url('/images/hero-birch-landscape.png');
    background-repeat: no-repeat;
    background-position: right top;
    background-size: 100% 100%;
    opacity: 1;
    filter: saturate(0.98) brightness(1.02) contrast(1.02);
    z-index: 0;
}

.wb-hero::after{
    content: "";
    position:absolute;
    right:0;
    top:0;
    height:100%;
    width:52%;
    pointer-events:none;
    background:linear-gradient(to left, rgba(247,251,252,0) 20%, rgba(247,251,252,0.15) 40%, rgba(247,251,252,0.45) 65%, rgba(247,251,252,0.9) 92%);
    z-index: 1;
}

/* decorative handwritten overlay text on the scenic area */
.hero-decor-text{position:absolute;right:9%;top:24%;pointer-events:none;z-index:5;display:flex;flex-direction:column;gap:0;transform:rotate(-18deg);transform-origin:left top}
.hero-decor-text .hd-line{display:inline-block;align-self:flex-start;color:#1e3a56;font-family:"Caveat","Segoe Script","Brush Script MT",cursive;font-weight:600;font-size:1.7vw;line-height:1.15;text-shadow:0 1px 2px rgba(255,255,255,0.4);letter-spacing:0.01em}
.hero-decor-text .hd-line:last-child{position:relative;margin-bottom:8px}
.hero-decor-text .hd-line:last-child::after{content:"";position:absolute;left:2%;right:2%;bottom:-8px;height:3px;border-radius:2px;background:#1f8a4b;transform:rotate(-1deg)}

@media (max-width:1100px){
    .hero-decor-text{display:none}
}

/* Ensure hero doesn't extend the decorative image beyond hero height */
.wb-hero{min-height:300px}

@media (max-width:1200px){
    .wb-hero{min-height:260px}
}

@media (max-width:900px){
    .wb-hero{min-height:auto}
}



/* Hero botanical artwork placement */
.hero-botanical{position:absolute;right:0;top:0;width:45%;height:100%;pointer-events:none;mix-blend-mode:normal;opacity:0.85}
.wb-hero{position:relative;overflow:visible}
.hero-botanical{transform:translateX(6%)}

@media (max-width:900px){
    .hero-botanical{display:none}
}

/* Hero birch artwork placement */
.hero-birch-artwork{position:absolute;right:0;top:0;width:42%;height:100%;pointer-events:none;opacity:0.9;mix-blend-mode:normal}
.hero-birch-artwork svg{display:block}
@media (max-width:900px){
    .hero-birch-artwork{display:none}
}
.wb-eyebrow{letter-spacing:0.12em;color:var(--wb-navy);font-size:0.86rem;margin-bottom:0.6rem}
.wb-hero-heading{font-size:clamp(2rem,4vw,3.5rem);color:var(--wb-navy);line-height:1.02;margin:0 0 0.8rem;font-weight:700}
.wb-hero-accent{color:var(--wb-green);display:inline-block}
.wb-hero-sub{color:#3b5560;max-width:560px;margin-bottom:1rem;font-size:1.02rem}
.wb-hero-ctas{display:flex;gap:0.75rem;margin-bottom:1rem}
.wb-capabilities{display:flex;gap:1.25rem;list-style:none;padding:0;margin:0;color:#38555f}
.wb-capabilities li{display:flex;align-items:center;gap:0.75rem;font-weight:500;color:#2f4b53}
.wb-cap-icon{display:inline-flex;width:36px;height:36px;border-radius:8px;background:transparent;color:var(--wb-green);align-items:center;justify-content:center}
.wb-cap-icon svg{width:20px;height:20px}

.wb-hero-right{display:none}
.wb-visual-placeholder{display:none}

/* Solutions section */
.wb-solutions{padding:3rem 0;border-top:1px solid rgba(11,49,64,0.04);background:linear-gradient(180deg, rgba(15,46,55,0.02), transparent)}
.wb-solutions-inner{max-width:1180px;margin:0 auto;padding:0 1rem;text-align:center}
.wb-solutions-heading{font-size:clamp(1.6rem,3.2vw,2.4rem);margin:0.4rem 0 0.6rem}
.wb-solutions-sub{color:#3b5560;max-width:720px;margin:0 auto 1.6rem}
.wb-solutions-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;margin-top:1.6rem;align-items:start;text-align:left}
.wb-svc{background:transparent;padding:1rem 0;border-bottom:none;display:grid;grid-template-rows:auto auto auto 1fr auto;grid-template-columns:1fr;gap:0.6rem;align-items:start}
/* grid areas to keep capability block aligned across columns */
.wb-svc{grid-template-areas:"num" "title" "head" "desc" "caps"}     
.svc-number{grid-area:num;font-size:3.2rem;color:rgba(11,49,64,0.06);font-weight:800;line-height:1;margin:0}
.svc-title{grid-area:title;margin:0;color:var(--wb-navy);font-weight:700}
.svc-head{grid-area:head;margin:0;font-size:1.02rem;color:#27434a;font-weight:600}
.svc-desc{grid-area:desc;margin:0;color:#38555f}
.svc-caps{grid-area:caps;margin:0;padding:0;list-style:none;margin-top:0.6rem}
.svc-caps-label{font-size:0.68rem;letter-spacing:0.12em;color:var(--wb-navy);opacity:0.6;margin-bottom:0.6rem}
.svc-tags{display:flex;flex-wrap:wrap;gap:0.6rem;align-items:center}
.svc-tag{background:rgba(31,138,75,0.06);color:var(--wb-navy);padding:0.5rem 1rem;border-radius:20px;font-size:0.95rem;font-weight:600;display:inline-flex;align-items:center}

/* subtle gradient accent under the service number */
.svc-number::after{content:"";display:block;width:48px;height:4px;margin-top:10px;border-radius:2px;background:linear-gradient(90deg, var(--wb-green), var(--wb-blue));opacity:0.95}

@media (max-width:900px){
    .wb-solutions-grid{grid-template-columns:1fr;gap:1rem}
    .wb-svc{align-items:flex-start;text-align:left;padding:0}
    .svc-number{font-size:2.4rem}
}

/* SystemMap styles */
/* Complexity visualization styles */
.complexity{width:100%;height:100%;position:relative}
.complexity-svg{width:100%;height:100%;overflow:visible}
.comp-path{transition:d 0.9s ease, stroke-width 0.4s ease, opacity 0.6s ease}
.comp-path:nth-child(even){opacity:0.62}
.comp-path:nth-child(odd){opacity:0.72}
.comp-support{font-size:0.78rem;fill:#4b6a71;opacity:0.95}

/* remove inner card look: let svg bleed into hero */
.wb-visual-placeholder{background:transparent;border:none;box-shadow:none}

/* slight pointer parallax via transform on the svg group */
.complexity-svg > g, .complexity-svg > path { transform-origin:410px 210px }
.complexity-svg{transform:translate(var(--mx,0px), var(--my,0px))}
.sys-support{font-size:0.78rem;fill:#4b6a71;opacity:0.9}
.sys-status{font-size:1.6rem;fill:rgba(11,49,64,0.08);font-weight:800;letter-spacing:0.12em}
.sys-status.clearer{fill:rgba(31,138,75,0.12)}

@media (max-width:600px){
    .wb-visual-placeholder{height:300px}
    .sys-detail{position:static;margin-top:8px}
}

@media (max-width:900px){
    .wb-hero-inner{grid-template-columns:1fr;}
    .wb-hero-right{order: -1}
    .wb-visual-placeholder{height:220px}
    .wb-nav{display:none}
    .wb-logo img{height:64px}
    .wb-hero-heading{font-size:1.9rem}
    .wb-hero::before{display:none}
    .wb-hero::after{display:none}
}

/* Mobile navigation toggle + dropdown menu */
.wb-nav-toggle{display:none;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:40px;height:40px;padding:0;border:none;background:transparent;cursor:pointer;justify-self:end}
.wb-nav-toggle span{display:block;width:22px;height:2px;background:var(--wb-navy);border-radius:2px;transition:transform 0.2s ease, opacity 0.2s ease}
.wb-nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.wb-nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.wb-nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

.wb-nav-mobile{display:none;flex-direction:column;background:rgba(255,255,255,0.98);border-bottom:1px solid rgba(11,49,64,0.08);padding:0.5rem 1rem 1rem}
.wb-nav-mobile.open{display:flex}
.wb-nav-mobile .wb-nav-link{padding:0.7rem 0.25rem;border-bottom:1px solid rgba(11,49,64,0.06)}
.wb-nav-mobile .wb-btn{margin-top:0.75rem;justify-content:center}

@media (max-width:900px){
    .wb-header-inner{grid-template-columns:auto 1fr auto}
    .wb-header-cta{display:none}
    .wb-nav-toggle{display:flex}
}

/* ================================
   Get to the Root of It — Stage 1
   ================================ */
.wb-experience{
    position:relative;
    background:linear-gradient(180deg, #0e2a38 0%, #0b3140 55%, #0a2938 100%);
    padding:4.5rem 0 5rem;
    overflow:hidden;
    isolation:isolate;
}

/* extremely subtle root/branch line motif, purely decorative */
.wb-experience-bg{
    position:absolute;
    inset:0;
    z-index:0;
    pointer-events:none;
    opacity:0.16;
    background-image:
        radial-gradient(circle at 15% 15%, rgba(31,138,75,0.35), transparent 45%),
        radial-gradient(circle at 85% 85%, rgba(11,107,168,0.35), transparent 45%),
        repeating-linear-gradient(115deg, rgba(255,255,255,0.05) 0 1px, transparent 1px 120px),
        repeating-linear-gradient(65deg, rgba(255,255,255,0.04) 0 1px, transparent 1px 160px);
}

.wb-experience-inner{position:relative;z-index:1;max-width:820px}

.wb-eyebrow-light{color:#8fd6b5;letter-spacing:0.12em;font-size:0.86rem;margin-bottom:0.6rem}

.wb-experience-heading{color:#ffffff;font-size:clamp(1.8rem,3.2vw,2.6rem);font-weight:700;margin:0 0 1.75rem;line-height:1.15}

.wb-experience-progress{display:flex;align-items:center;gap:0.6rem;flex-wrap:wrap;margin-bottom:2.25rem}
.wep-step{color:rgba(255,255,255,0.55);font-size:0.85rem;font-weight:600;letter-spacing:0.04em;padding:0.3rem 0.7rem;border:1px solid rgba(255,255,255,0.15);border-radius:999px}
.wep-step-active{color:#0b3140;background:#8fd6b5;border-color:#8fd6b5}
.wep-step-complete{color:#8fd6b5;border-color:rgba(143,214,181,0.5)}
.wep-arrow{color:rgba(255,255,255,0.35)}

.wb-intake{
    background:rgba(255,255,255,0.98);
    border-radius:16px;
    padding:2rem;
    box-shadow:0 20px 50px rgba(0,0,0,0.25);
}

.wb-intake-question{font-size:1.15rem;font-weight:600;color:var(--wb-navy);margin:0 0 1rem}

.wb-intake-textarea{
    width:100%;
    box-sizing:border-box;
    resize:vertical;
    min-height:130px;
    padding:1rem 1.1rem;
    border-radius:12px;
    border:1.5px solid rgba(11,49,64,0.14);
    font-family:inherit;
    font-size:1rem;
    line-height:1.5;
    color:var(--wb-navy);
    background:#fbfdfd;
    transition:border-color 0.15s ease, box-shadow 0.15s ease;
}
.wb-intake-textarea:focus{
    outline:none;
    border-color:var(--wb-green);
    box-shadow:0 0 0 3px rgba(31,138,75,0.15);
}
.wb-intake-textarea::placeholder{color:rgba(11,49,64,0.4)}

.wb-intake-examples{margin-top:1.25rem}
.wb-intake-examples-label{display:inline-flex;align-items:center;gap:0.5rem;font-size:0.85rem;color:rgba(11,49,64,0.6);margin-bottom:0.6rem}

.wb-intake-examples-spinner{
    width:13px;
    height:13px;
    border-radius:50%;
    border:2px solid rgba(31,138,75,0.25);
    border-top-color:var(--wb-green);
    animation:wb-spin 0.7s linear infinite;
}
.wb-intake-example-chips{display:flex;flex-wrap:wrap;gap:0.6rem}

.wb-example-chip{
    background:rgba(11,107,168,0.06);
    color:var(--wb-navy);
    border:1px solid rgba(11,107,168,0.15);
    padding:0.5rem 1rem;
    border-radius:999px;
    font-size:0.9rem;
    font-weight:600;
    cursor:pointer;
    transition:background 0.15s ease, transform 0.15s ease, border-color 0.15s ease;
}
.wb-example-chip:hover{background:rgba(11,107,168,0.12);border-color:rgba(11,107,168,0.3);transform:translateY(-1px)}

.wb-example-chip-skeleton{
    background:linear-gradient(90deg,
        rgba(11,107,168,0.08) 20%,
        rgba(11,107,168,0.22) 45%,
        rgba(11,107,168,0.08) 70%);
    background-size:250% 100%;
    border-color:rgba(11,107,168,0.15);
    color:transparent;
    width:110px;
    cursor:default;
    animation:wb-chip-shimmer 1.3s ease-in-out infinite;
}

.wb-example-chip-skeleton:nth-child(2){width:130px;animation-delay:0.15s}
.wb-example-chip-skeleton:nth-child(3){width:96px;animation-delay:0.3s}

@keyframes wb-chip-shimmer{
    0% { background-position:100% 0; }
    100% { background-position:0 0; }
}

.wb-intake-validation{color:#b3261e;font-size:0.9rem;margin:1rem 0 0}

.wb-intake-actions{margin-top:1.5rem;display:flex;justify-content:flex-end;align-items:center;gap:0.75rem;flex-wrap:wrap}
.wb-btn-large{padding:0.75rem 1.6rem;font-size:1.02rem}

@media (max-width:600px){
    .wb-intake{padding:1.5rem}
    .wb-intake-actions{justify-content:stretch}
    .wb-intake-actions .wb-btn{width:100%;justify-content:center}
}

/* Analyze stage */
.wb-analyze{
    background:rgba(255,255,255,0.98);
    border-radius:16px;
    padding:2rem;
    box-shadow:0 20px 50px rgba(0,0,0,0.25);
}

.wb-analyze-heading{color:var(--wb-navy);font-size:1.4rem;font-weight:700;margin:0 0 0.6rem}
.wb-analyze-sub{color:rgba(11,49,64,0.75);font-size:0.98rem;line-height:1.55;margin:0 0 1.75rem;max-width:60ch}

.wb-analyze-groups{display:grid;grid-template-columns:repeat(3, 1fr);gap:1.25rem;margin-bottom:2rem}
.wb-analyze-group{background:rgba(11,49,64,0.03);border:1px solid rgba(11,49,64,0.08);border-radius:12px;padding:1rem 1.1rem}
.wb-analyze-group-label{font-size:0.72rem;letter-spacing:0.1em;font-weight:700;color:var(--wb-green);text-transform:uppercase;margin-bottom:0.6rem}
.wb-analyze-group-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0.4rem}
.wb-analyze-group-list li{color:var(--wb-navy);font-size:0.95rem;font-weight:500;padding-left:0.9rem;position:relative}
.wb-analyze-group-list li::before{content:"";position:absolute;left:0;top:0.5em;width:5px;height:5px;border-radius:50%;background:rgba(11,107,168,0.5)}

.wb-analyze-process{margin-bottom:2rem}
.wb-analyze-process-label{font-size:0.72rem;letter-spacing:0.1em;font-weight:700;color:rgba(11,49,64,0.55);text-transform:uppercase;margin-bottom:0.9rem}

.wb-process-flow{display:flex;flex-wrap:wrap;align-items:center;gap:0.5rem}
.wb-process-step{
    background:rgba(11,49,64,0.04);
    border:1.5px solid rgba(11,49,64,0.14);
    color:var(--wb-navy);
    font-weight:600;
    font-size:0.92rem;
    padding:0.65rem 1.1rem;
    border-radius:10px;
    white-space:nowrap;
}
.wb-process-connector{color:var(--wb-green);font-weight:700;font-size:1.1rem}

.wb-analyze-actions{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}
.wb-analyze-actions-right{display:flex;align-items:center;gap:0.75rem;flex-wrap:wrap}

@media (max-width:700px){
    .wb-analyze-groups{grid-template-columns:1fr}
}

@media (max-width:600px){
    .wb-analyze{padding:1.5rem}
    .wb-analyze-actions{justify-content:stretch}
    .wb-analyze-actions .wb-btn{width:100%;justify-content:center}
    .wb-analyze-actions-right{flex-direction:column;width:100%}
    .wb-analyze-actions-right .wb-btn{width:100%;justify-content:center}
    .wb-process-step{font-size:0.85rem;padding:0.55rem 0.9rem}
}

/* Analyze loading / error states */
.wb-analyze-loading{
    background:rgba(255,255,255,0.98);
    border-radius:16px;
    padding:3rem 2rem;
    box-shadow:0 20px 50px rgba(0,0,0,0.25);
    text-align:center;
    color:var(--wb-navy);
}
.wb-analyze-spinner{
    width:36px;
    height:36px;
    margin:0 auto 1.25rem;
    border-radius:50%;
    border:3px solid rgba(11,49,64,0.12);
    border-top-color:var(--wb-green);
    animation:wb-spin 0.8s linear infinite;
}
@keyframes wb-spin{to{transform:rotate(360deg)}}
.wb-analyze-loading-actions{margin-top:1.5rem}

.wb-analyze-error{
    background:rgba(255,255,255,0.98);
    border-radius:16px;
    padding:2rem;
    box-shadow:0 20px 50px rgba(0,0,0,0.25);
    color:var(--wb-navy);
}
.wb-analyze-error-actions{display:flex;gap:1rem;margin-top:1.25rem;flex-wrap:wrap}

@media (max-width:600px){
    .wb-analyze-error-actions{justify-content:stretch}
    .wb-analyze-error-actions .wb-btn{width:100%;justify-content:center}
}

/* Explore stage */
.wb-explore{
    background:rgba(255,255,255,0.98);
    border-radius:16px;
    padding:2rem;
    box-shadow:0 20px 50px rgba(0,0,0,0.25);
}

.wb-explore-heading{color:var(--wb-navy);font-size:1.4rem;font-weight:700;margin:0 0 0.6rem}
.wb-explore-sub{color:rgba(11,49,64,0.75);font-size:0.98rem;line-height:1.55;margin:0 0 1.25rem;max-width:60ch}

.wb-explore-toolbar{display:flex;justify-content:flex-end;margin-bottom:1rem}
.wb-friction-toggle{display:inline-flex;align-items:center;gap:0.5rem;font-size:0.9rem;font-weight:600;color:var(--wb-navy);cursor:pointer;user-select:none}
.wb-friction-toggle input{accent-color:var(--wb-green)}

.wb-explore-layout{display:grid;grid-template-columns:1fr 300px;gap:1.25rem;align-items:start}

.wb-explore-workspace{
    position:relative;
    height:360px;
    background:
        radial-gradient(circle at 20% 20%, rgba(11,107,168,0.05), transparent 40%),
        radial-gradient(circle at 80% 80%, rgba(31,138,75,0.05), transparent 40%),
        rgba(11,49,64,0.02);
    background-image:
        radial-gradient(circle at 20% 20%, rgba(11,107,168,0.05), transparent 40%),
        radial-gradient(circle at 80% 80%, rgba(31,138,75,0.05), transparent 40%),
        radial-gradient(rgba(11,49,64,0.08) 1px, transparent 1px);
    background-size: auto, auto, 18px 18px;
    border:1px solid rgba(11,49,64,0.1);
    border-radius:12px;
    overflow:hidden;
    touch-action:none;
    box-shadow:inset 0 1px 3px rgba(11,49,64,0.06);
}

.wb-explore-connectors{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.wb-explore-connectors line{stroke:rgba(11,49,64,0.25);stroke-width:2;stroke-dasharray:5 5}

.wb-explore-node{
    position:absolute;
    transform:translate(-50%, -50%);
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:0.2rem;
    width:110px;
    max-width:calc(100% - 12px);
    box-sizing:border-box;
    background:#ffffff;
    border:1.5px solid rgba(11,49,64,0.14);
    border-top:3px solid rgba(11,107,168,0.55);
    color:var(--wb-navy);
    font-weight:600;
    font-size:0.84rem;
    padding:0.65rem 0.7rem 0.55rem;
    border-radius:10px;
    cursor:grab;
    box-shadow:0 6px 16px rgba(11,49,64,0.1);
    transition:border-color 0.15s ease, box-shadow 0.15s ease, transform 0.1s ease;
    text-align:center;
    line-height:1.25;
    user-select:none;
}
.wb-explore-node:hover{box-shadow:0 8px 20px rgba(11,49,64,0.14)}
.wb-explore-node:active{cursor:grabbing}
.wb-explore-node.selected{border-color:var(--wb-green);box-shadow:0 0 0 3px rgba(31,138,75,0.18), 0 6px 16px rgba(11,49,64,0.1)}
.wb-explore-node.friction{border-color:#c98a2a;background:#fffaf0}
.wb-explore-node.friction.selected{border-color:var(--wb-green)}

.wb-explore-node-input{border-top-color:var(--wb-green)}
.wb-explore-node-output{border-top-color:var(--wb-green)}
.wb-explore-node-approval{border-top-color:#c98a2a}
.wb-explore-node-manualstep{border-top-color:rgba(11,107,168,0.55)}
.wb-explore-node-systemstep{border-top-color:rgba(11,49,64,0.4)}

.wb-explore-node-index{
    position:absolute;
    top:-9px;
    left:-9px;
    width:20px;
    height:20px;
    border-radius:50%;
    background:var(--wb-navy);
    color:#ffffff;
    font-size:0.68rem;
    font-weight:700;
    display:flex;
    align-items:center;
    justify-content:center;
    box-shadow:0 2px 4px rgba(0,0,0,0.2);
}
.wb-explore-node-label{white-space:normal;word-break:break-word}
.wb-explore-node-friction{font-size:0.68rem;font-weight:600;color:#8a5e12}
.wb-explore-node-pin{position:absolute;top:-8px;right:-8px;font-size:0.85rem;line-height:1}

.wb-explore-details{
    background:rgba(11,49,64,0.03);
    border:1px solid rgba(11,49,64,0.08);
    border-radius:12px;
    padding:1.1rem 1.2rem;
    min-height:360px;
}
.wb-explore-details-empty{color:rgba(11,49,64,0.55);font-size:0.92rem}
.wb-explore-details-title{color:var(--wb-navy);font-size:1.05rem;font-weight:700;margin:0 0 0.35rem}
.wb-explore-details-type{display:inline-block;font-size:0.7rem;letter-spacing:0.08em;font-weight:700;text-transform:uppercase;color:var(--wb-navy);opacity:0.55;margin-bottom:0.7rem}
.wb-explore-details-description{color:rgba(11,49,64,0.85);font-size:0.92rem;line-height:1.5;margin:0 0 1rem}
.wb-explore-details-label{font-size:0.7rem;letter-spacing:0.08em;font-weight:700;text-transform:uppercase;color:var(--wb-green);margin-bottom:0.3rem}
.wb-explore-details-friction{margin-bottom:1rem}
.wb-explore-details-friction p{margin:0;color:var(--wb-navy);font-size:0.92rem}

.wb-explore-details-no-friction{color:rgba(11,49,64,0.55);font-size:0.9rem;font-style:italic}

.wb-must-stay-toggle{display:flex;align-items:center;gap:0.5rem;font-size:0.88rem;font-weight:600;color:var(--wb-navy);margin-top:1.25rem;cursor:pointer;user-select:none}
.wb-must-stay-toggle input{accent-color:var(--wb-green)}

.wb-explore-actions{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;margin-top:1.5rem}
.wb-explore-actions-right{display:flex;align-items:center;gap:0.75rem;flex-wrap:wrap}

@media (max-width:900px){
    .wb-explore-layout{grid-template-columns:1fr}
    .wb-explore-details{min-height:auto}
}

@media (max-width:600px){
    .wb-explore{padding:1.5rem}
    .wb-explore-actions{justify-content:stretch}
    .wb-explore-actions .wb-btn{width:100%;justify-content:center}
    .wb-explore-actions-right{flex-direction:column;width:100%}
    .wb-explore-actions-right .wb-btn{width:100%;justify-content:center}
}

/* Grow stage */
.wb-grow{
    background:rgba(255,255,255,0.98);
    border-radius:16px;
    padding:2rem;
    box-shadow:0 20px 50px rgba(0,0,0,0.25);
}

.wb-grow-loading{
    text-align:center;
    padding:3rem 1rem;
    color:var(--wb-navy);
}
.wb-grow-loading-message{
    font-size:1rem;
    font-weight:600;
    color:rgba(11,49,64,0.75);
    margin-top:0.25rem;
}

.wb-grow-heading{color:var(--wb-navy);font-size:1.4rem;font-weight:700;margin:0 0 0.6rem}
.wb-grow-sub{color:rgba(11,49,64,0.75);font-size:0.98rem;line-height:1.55;margin:0 0 1.75rem;max-width:65ch}

.wb-grow-directions{display:flex;flex-direction:column;gap:1.5rem;margin-bottom:2rem}

.wb-grow-direction-label{font-size:0.72rem;letter-spacing:0.1em;font-weight:700;color:rgba(11,49,64,0.55);text-transform:uppercase;margin-bottom:0.9rem}
.wb-grow-direction-current .wb-process-step{
    background:rgba(11,49,64,0.03);
    border-color:rgba(11,49,64,0.1);
    color:rgba(11,49,64,0.6);
    box-shadow:none;
}
.wb-grow-direction-current .wb-process-connector{color:rgba(11,49,64,0.3)}

.wb-grow-direction-possible .wb-grow-direction-label{color:var(--wb-green)}
.wb-process-step-proposed{
    background:rgba(31,138,75,0.06);
    border:1.5px solid rgba(31,138,75,0.3);
    box-shadow:0 4px 10px rgba(31,138,75,0.08);
}
.wb-process-connector-proposed{color:var(--wb-green)}
.wb-process-step-preserved{
    border-color:#c98a2a;
    background:#fffaf0;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:0.3rem;
}
.wb-process-step-preserved-badge{
    font-size:0.65rem;
    font-weight:700;
    letter-spacing:0.04em;
    text-transform:uppercase;
    color:#8a5e12;
    background:rgba(201,138,42,0.12);
    padding:0.15rem 0.45rem;
    border-radius:999px;
    white-space:nowrap;
}

.wb-grow-section-label{font-size:0.72rem;letter-spacing:0.1em;font-weight:700;color:rgba(11,49,64,0.55);text-transform:uppercase;margin-bottom:0.9rem}

.wb-grow-changes{margin-bottom:2rem}
.wb-grow-changes-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0.9rem}
.wb-grow-change{
    background:rgba(11,49,64,0.03);
    border:1px solid rgba(11,49,64,0.08);
    border-left:3px solid rgba(11,107,168,0.55);
    border-radius:10px;
    padding:0.85rem 1rem;
}
.wb-grow-change-removed{border-left-color:#c0392b}
.wb-grow-change-moved{border-left-color:#0b6ba8}
.wb-grow-change-preserved{border-left-color:#c98a2a}
.wb-grow-change-connected{border-left-color:var(--wb-green)}
.wb-grow-change-title{color:var(--wb-navy);font-weight:700;font-size:0.95rem;margin-bottom:0.25rem}
.wb-grow-change-description{color:rgba(11,49,64,0.75);font-size:0.9rem;line-height:1.5;margin:0}

.wb-grow-benefits{margin-bottom:2rem}
.wb-grow-benefits-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2, 1fr);gap:0.6rem 1.5rem}
.wb-grow-benefits-list li{color:var(--wb-navy);font-size:0.95rem;font-weight:600;padding-left:1.2rem;position:relative}
.wb-grow-benefits-list li::before{content:"✓";position:absolute;left:0;top:0;color:var(--wb-green);font-weight:700}

.wb-grow-credibility{
    background:rgba(11,49,64,0.03);
    border:1px solid rgba(11,49,64,0.08);
    border-radius:12px;
    padding:1rem 1.25rem;
    margin-bottom:2rem;
}
.wb-grow-credibility-title{color:var(--wb-navy);font-weight:700;font-size:0.92rem;margin:0 0 0.35rem}
.wb-grow-credibility-body{color:rgba(11,49,64,0.7);font-size:0.88rem;line-height:1.5;margin:0}

.wb-grow-cta{
    text-align:center;
    padding-top:1.5rem;
    border-top:1px solid rgba(11,49,64,0.08);
}
.wb-grow-cta-heading{color:var(--wb-navy);font-size:1.2rem;font-weight:700;margin:0 0 0.5rem}
.wb-grow-cta-body{color:rgba(11,49,64,0.75);font-size:0.95rem;line-height:1.5;margin:0 auto 1.25rem;max-width:55ch}
.wb-grow-cta-actions{display:flex;justify-content:center;gap:1rem;flex-wrap:wrap}

@media (max-width:700px){
    .wb-grow-benefits-list{grid-template-columns:1fr}
}

@media (max-width:600px){
    .wb-grow{padding:1.5rem}
    .wb-grow-cta-actions{flex-direction:column;align-items:stretch}
    .wb-grow-cta-actions .wb-btn{width:100%;justify-content:center}
}

/* Philosophy / brand statement section: compact, centered, deliberate contrast to left-aligned sections */
.wb-philosophy{
    position:relative;
    background:
        radial-gradient(ellipse 900px 500px at 50% 0%, rgba(31,138,75,0.06), transparent 65%),
        radial-gradient(ellipse 800px 500px at 50% 100%, rgba(11,107,168,0.05), transparent 65%),
        var(--wb-offwhite);
    padding:5.5rem 0;
    overflow:hidden;
}

/* restrained abstract atmosphere, very low contrast, no photography or heavy illustration */
.wb-philosophy-bg{
    position:absolute;
    inset:0;
    z-index:0;
    pointer-events:none;
    opacity:0.4;
    background-image:
        repeating-linear-gradient(112deg, rgba(11,49,64,0.03) 0 1px, transparent 1px 110px),
        repeating-linear-gradient(68deg, rgba(31,138,75,0.03) 0 1px, transparent 1px 150px);
}

.wb-philosophy-inner{
    position:relative;
    z-index:1;
    display:flex;
    flex-direction:column;
    align-items:center;
    text-align:center;
}

.wb-philosophy .wb-eyebrow{color:var(--wb-green);letter-spacing:0.14em;font-size:0.82rem;font-weight:700;margin-bottom:0.9rem}

.wb-philosophy-statement-block{
    max-width:620px;
    display:flex;
    flex-direction:column;
    align-items:center;
}

.wb-philosophy-heading{
    color:var(--wb-navy);
    font-size:clamp(2.2rem,4.4vw,3.4rem);
    font-weight:700;
    line-height:1.1;
    margin:0 0 1.5rem;
    letter-spacing:-0.015em;
}

.wb-philosophy-intro{
    color:#3b5560;
    font-size:1.15rem;
    line-height:1.65;
    max-width:48ch;
    margin:0;
}

.wb-philosophy-divider{
    color:rgba(11,49,64,0.28);
    margin:2.75rem 0;
}

.wb-philosophy-divider-svg{
    width:120px;
    height:24px;
}

.wb-philosophy-closing{
    max-width:560px;
    display:flex;
    flex-direction:column;
    align-items:center;
}

.wb-philosophy-closing-heading{
    color:var(--wb-navy);
    font-size:1.5rem;
    font-weight:700;
    line-height:1.35;
    margin:0 0 1rem;
    letter-spacing:-0.005em;
}

.wb-philosophy-statement-sub{
    color:#3b5560;
    font-size:1rem;
    line-height:1.65;
    margin:0 0 1.75rem;
}

.wb-philosophy-cta{
    display:inline-flex;
    align-items:center;
    gap:0.4rem;
    color:var(--wb-navy);
    font-weight:700;
    font-size:1.02rem;
    text-decoration:none;
    border-bottom:2px solid var(--wb-green);
    padding-bottom:0.2rem;
    transition:color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.wb-philosophy-cta:hover{
    color:var(--wb-green);
    transform:translateX(2px);
}

@media (max-width:980px){
    .wb-philosophy{padding:4.5rem 0}
    .wb-philosophy-divider{margin:2.25rem 0}
}

@media (max-width:600px){
    .wb-philosophy{padding:3.5rem 0}
    .wb-philosophy-heading{font-size:clamp(1.8rem,7vw,2.2rem)}
    .wb-philosophy-intro{font-size:1.02rem}
    .wb-philosophy-closing-heading{font-size:1.25rem}
}

/* Footer: strong navy conclusion to the homepage, deliberate contrast from the pale philosophy section above it */
.wb-footer{
    position:relative;
    background:linear-gradient(180deg, #0e2a38 0%, #0b3140 55%, #091f2a 100%);
    padding:5.5rem 0 2.25rem;
    overflow:hidden;
}

/* extremely low-contrast root/branch linework, purely decorative */
.wb-footer-bg{
    position:absolute;
    inset:0;
    z-index:0;
    pointer-events:none;
    opacity:0.14;
    background-image:
        radial-gradient(circle at 10% 10%, rgba(31,138,75,0.35), transparent 45%),
        radial-gradient(circle at 92% 30%, rgba(11,107,168,0.3), transparent 45%),
        repeating-linear-gradient(115deg, rgba(255,255,255,0.05) 0 1px, transparent 1px 130px);
}

.wb-footer-inner{position:relative;z-index:1}

.wb-footer-main{
    display:grid;
    grid-template-columns:1.2fr 1fr 1.2fr;
    gap:3rem;
    align-items:start;
    padding-bottom:3rem;
}

.wb-footer-brand{display:flex;flex-direction:column;gap:1.1rem}

.wb-footer-logo{display:inline-block}
.wb-footer-logo img{height:34px;width:auto;filter:brightness(0) invert(1)}

.wb-footer-tagline{
    color:rgba(255,255,255,0.75);
    font-size:0.98rem;
    line-height:1.55;
    margin:0;
}

.wb-footer-tagline-accent{color:#8fd6b5;font-weight:600}

.wb-footer-nav{
    display:flex;
    flex-direction:column;
    gap:0.8rem;
    padding-top:0.4rem;
}

.wb-footer-nav-heading{
    color:rgba(255,255,255,0.4);
    font-size:0.72rem;
    font-weight:700;
    letter-spacing:0.12em;
    margin-bottom:0.2rem;
}

.wb-footer-nav-link{
    color:rgba(255,255,255,0.7);
    text-decoration:none;
    font-size:0.95rem;
    font-weight:600;
    transition:color 0.2s ease;
    width:fit-content;
}

.wb-footer-nav-link:hover{color:#ffffff}

.wb-footer-contact{max-width:340px}

.wb-footer-eyebrow{color:#8fd6b5;letter-spacing:0.14em;font-size:0.78rem;font-weight:700;margin-bottom:0.7rem}

.wb-footer-contact-heading{
    color:#ffffff;
    font-size:1.3rem;
    font-weight:700;
    line-height:1.35;
    margin:0 0 1.1rem;
}

.wb-footer-cta{
    display:inline-flex;
    align-items:center;
    gap:0.4rem;
    color:#ffffff;
    font-weight:700;
    font-size:0.98rem;
    text-decoration:none;
    border-bottom:2px solid var(--wb-green);
    padding-bottom:0.2rem;
    transition:color 0.2s ease, transform 0.2s ease;
}

.wb-footer-cta:hover{color:#8fd6b5;transform:translateX(2px)}

.wb-footer-bottom{
    display:flex;
    align-items:center;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:0.5rem;
    padding-top:1.75rem;
    border-top:1px solid rgba(255,255,255,0.12);
}

.wb-footer-copyright,
.wb-footer-location{
    color:rgba(255,255,255,0.5);
    font-size:0.85rem;
}

@media (max-width:900px){
    .wb-footer{padding:4.5rem 0 2rem}
    .wb-footer-main{grid-template-columns:1fr;gap:2.25rem}
    .wb-footer-contact{max-width:none}
}

@media (max-width:600px){
    .wb-footer{padding:3.5rem 0 1.75rem}
    .wb-footer-bottom{flex-direction:column;align-items:flex-start;gap:0.4rem}
}

/* Contact page */

.wb-contact-hero{padding:3rem 0 1rem}

.wb-contact-heading{font-size:clamp(1.8rem,3.2vw,2.6rem);color:var(--wb-navy);font-weight:700;margin:0 0 0.8rem}

.wb-contact-sub{color:var(--wb-navy);opacity:0.75;max-width:60ch;font-size:1.05rem;line-height:1.55}

.wb-contact{padding:1.5rem 0 5rem}

.wb-contact-inner{max-width:720px}

.wb-contact-form{
    background:#ffffff;
    border:1px solid rgba(11,49,64,0.08);
    border-radius:16px;
    padding:2rem;
    box-shadow:0 10px 30px rgba(11,49,64,0.05);
    display:flex;
    flex-direction:column;
    gap:1.2rem;
}

.wb-form-row{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}

.wb-form-row:has(.wb-form-field:only-child){grid-template-columns:1fr}

.wb-form-field{display:flex;flex-direction:column;gap:0.4rem}

.wb-form-field label{font-size:0.9rem;font-weight:600;color:var(--wb-navy)}

.wb-form-field input[type="text"],
.wb-form-field input,
.wb-form-field textarea,
.wb-select{
    font-family:inherit;
    font-size:0.98rem;
    color:var(--wb-navy);
    padding:0.65rem 0.85rem;
    border-radius:8px;
    border:1px solid rgba(11,49,64,0.14);
    background:var(--wb-offwhite);
    transition:border-color 0.2s ease, box-shadow 0.2s ease;
}

.wb-form-field input:focus,
.wb-form-field textarea:focus,
.wb-select:focus{
    outline:none;
    border-color:var(--wb-green);
    box-shadow:0 0 0 3px rgba(31,138,75,0.12);
}

.wb-select{appearance:auto;cursor:pointer}

.wb-form-field .validation-message,
.wb-field-error{
    color:#c23b3b;
    font-size:0.85rem;
    margin:0;
}

.wb-input-invalid{
    border-color:#c23b3b !important;
    box-shadow:0 0 0 3px rgba(194,59,59,0.12) !important;
}

.wb-form-summary-error{
    background:rgba(194,59,59,0.06);
    border:1px solid rgba(194,59,59,0.3);
    border-radius:8px;
    padding:1rem 1.25rem;
    margin-bottom:0.5rem;
}

.wb-form-summary-error-heading{
    margin:0 0 0.4rem;
    font-weight:600;
    color:#c23b3b;
}

.wb-form-summary-error ul{
    margin:0;
    padding-left:1.2rem;
    color:#c23b3b;
}

.wb-form-summary-error li{
    font-size:0.9rem;
}

.wb-contact-form .wb-btn{align-self:flex-start}

.wb-contact-success{
    background:#ffffff;
    border:1px solid rgba(11,49,64,0.08);
    border-radius:16px;
    padding:3rem 2rem;
    text-align:center;
    box-shadow:0 10px 30px rgba(11,49,64,0.05);
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:1rem;
}

.wb-contact-success h2{color:var(--wb-navy);font-size:1.6rem;margin:0}

.wb-contact-success p{color:var(--wb-navy);opacity:0.75;margin:0 0 0.5rem}

@media (max-width:700px){
    .wb-form-row{grid-template-columns:1fr}
    .wb-contact-form{padding:1.5rem}
}

.wb-dynamic-fields-loading{
    display:flex;
    align-items:center;
    gap:0.6rem;
    color:var(--wb-navy);
    opacity:0.7;
    font-size:0.92rem;
    padding:0.3rem 0 0.2rem;
}

.wb-contact-success-actions{
    display:flex;
    gap:0.75rem;
    flex-wrap:wrap;
    justify-content:center;
    margin-top:0.5rem;
}

.wb-btn-spinner{
    width:14px;
    height:14px;
    border-radius:50%;
    border:2px solid rgba(255,255,255,0.35);
    border-top-color:#ffffff;
    animation:wb-spin 0.7s linear infinite;
}

.wb-btn[disabled]{
    opacity:0.75;
    cursor:not-allowed;
    transform:none !important;
}
