/*
 * Business & Technology theme (FRONTEND_THEME=business), on top of the
 * vendored Bootstrap 5. Blue and space black lead, purple adds depth;
 * green / orange / yellow are small accents only.
 */
:root {
    --bt-midnight: #111B3A;
    --bt-blue: #356BFF;
    --bt-blue-dark: #2553D6;
    --bt-purple: #7047EB;
    --bt-space: #090B14;
    --bt-soft: #F7F8FC;
    --bt-slate: #5B6477;
    --bt-border: #E3E7F0;
    --bt-green: #25B875;
    --bt-orange: #FF9635;
    --bt-yellow: #F5C84C;
    --bt-radius: 14px;
    --bt-shadow: 0 6px 24px rgba(17, 27, 58, .07);
    --bs-body-font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
    --bs-link-color: var(--bt-blue-dark);
    --bs-link-color-rgb: 37, 83, 214;
    --bs-link-hover-color: var(--bt-purple);
}

body.bt-site {
    font-family: var(--bs-body-font-family);
    background: #fff;
    color: var(--bt-midnight);
    -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6 { color: inherit; font-weight: 700; letter-spacing: -.01em; }
h2 { font-size: clamp(1.6rem, 1.2rem + 1.5vw, 2.3rem); }

html:not(.bt-js) .bt-js-only { display: none !important; }
[hidden] { display: none !important; }

.bt-skip-link {
    position: absolute; left: 1rem; top: -3rem; z-index: 2000;
    background: #fff; color: var(--bt-midnight); padding: .5rem 1rem; border-radius: 8px;
}
.bt-skip-link:focus { top: 1rem; }
#main:focus { outline: none; }

:focus-visible { outline: 3px solid var(--bt-yellow); outline-offset: 2px; }

/* Buttons */
.btn { border-radius: 10px; font-weight: 600; }
.bt-btn-primary { background: var(--bt-blue-dark); border-color: var(--bt-blue-dark); color: #fff; }
.bt-btn-primary:hover, .bt-btn-primary:focus-visible { background: var(--bt-purple); border-color: var(--bt-purple); color: #fff; }
.bt-btn-primary:disabled { background: var(--bt-slate); border-color: var(--bt-slate); color: #fff; }
.bt-btn-outline { border: 1.5px solid var(--bt-blue-dark); color: var(--bt-blue-dark); background: #fff; }
.bt-btn-outline:hover, .bt-btn-outline:focus-visible { background: var(--bt-blue-dark); color: #fff; }
.bt-btn-ghost { border: 1.5px solid rgba(255, 255, 255, .45); color: #fff; background: transparent; }
.bt-btn-ghost:hover, .bt-btn-ghost:focus-visible { background: rgba(255, 255, 255, .12); color: #fff; border-color: #fff; }
.bt-btn-light { background: #fff; color: var(--bt-midnight); border-color: #fff; }
.bt-btn-light:hover, .bt-btn-light:focus-visible { background: var(--bt-soft); color: var(--bt-blue-dark); }

/* Header */
.bt-header { position: sticky; top: 0; z-index: 1030; background: rgba(9, 11, 20, .94); backdrop-filter: blur(10px); border-bottom: 1px solid rgba(255, 255, 255, .08); }
.bt-header .navbar { padding: .75rem 0; }
.bt-header .nav-link { color: rgba(255, 255, 255, .82); font-weight: 500; padding: .5rem .9rem !important; border-radius: 8px; }
.bt-header .nav-link:hover, .bt-header .nav-link.active { color: #fff; background: rgba(255, 255, 255, .07); }
.bt-brand { display: inline-flex; align-items: center; gap: .6rem; color: #fff; text-decoration: none; font-weight: 700; }
.bt-brand:hover { color: #fff; }
.bt-brand-logo { max-height: 40px; width: auto; }
.bt-brand-mark { display: inline-grid; place-items: center; width: 38px; height: 38px; border-radius: 10px; background: linear-gradient(135deg, var(--bt-blue), var(--bt-purple)); font-size: 1.2rem; }
.bt-brand-name { font-size: 1.05rem; letter-spacing: -.01em; }
@media (max-width: 991.98px) {
    .bt-header .navbar-collapse { padding: 1rem 0 .5rem; }
    .bt-header .btn { width: 100%; padding: .7rem 1rem; }
}

/* Hero */
.bt-hero {
    position: relative; overflow: hidden; color: #fff;
    padding: clamp(3.5rem, 8vw, 6.5rem) 0;
    background:
        radial-gradient(60% 70% at 85% 30%, rgba(112, 71, 235, .35), transparent 70%),
        radial-gradient(50% 60% at 10% 90%, rgba(53, 107, 255, .28), transparent 70%),
        linear-gradient(180deg, var(--bt-space), var(--bt-midnight));
}
.bt-hero-title { font-size: clamp(2.2rem, 1.4rem + 3.4vw, 3.9rem); font-weight: 800; line-height: 1.08; letter-spacing: -.02em; }
.bt-hero-lead { color: rgba(255, 255, 255, .8); font-size: 1.12rem; max-width: 40rem; }
.bt-hero-visual { width: 100%; max-width: 520px; height: auto; display: block; margin: 0 auto; }
.bt-nodes circle { transform-box: fill-box; transform-origin: center; animation: bt-pulse 4s ease-in-out infinite; }
.bt-nodes circle:nth-child(2n) { animation-delay: 1.3s; }
@keyframes bt-pulse { 50% { opacity: .55; } }

/* Eyebrow, muted */
.bt-eyebrow { text-transform: uppercase; letter-spacing: .08em; font-size: .75rem; font-weight: 700; color: var(--bt-blue-dark); }
.bt-eyebrow-light { color: #9DB6FF; }
.bt-muted { color: var(--bt-slate); }

/* Capability strip */
.bt-strip { background: var(--bt-midnight); padding: 1.1rem 0; border-top: 1px solid rgba(255, 255, 255, .06); }
.bt-strip-item { display: flex; align-items: center; gap: .6rem; color: rgba(255, 255, 255, .88); font-weight: 600; font-size: .95rem; }
.bt-strip-item i { color: var(--bt-green); font-size: 1.2rem; }

/* Sections */
.bt-section { padding: clamp(3rem, 7vw, 5.5rem) 0; }
.bt-section-alt { background: var(--bt-soft); }
.bt-section-head { max-width: 46rem; margin-bottom: 2.5rem; }
.bt-narrow { max-width: 860px; margin-left: auto; margin-right: auto; }

/* Cards */
.bt-card { background: #fff; border: 1px solid var(--bt-border); border-radius: var(--bt-radius); padding: 1.5rem; box-shadow: var(--bt-shadow); }
.bt-feature-icon { display: inline-grid; place-items: center; width: 46px; height: 46px; border-radius: 12px; background: rgba(53, 107, 255, .1); color: var(--bt-blue-dark); font-size: 1.3rem; }
.bt-service-card { display: flex; flex-direction: column; padding: 0; overflow: hidden; transition: transform .2s ease, box-shadow .2s ease; }
.bt-service-card:hover { transform: translateY(-3px); box-shadow: 0 14px 34px rgba(17, 27, 58, .12); }
.bt-service-media { aspect-ratio: 16 / 8; background: linear-gradient(135deg, var(--bt-midnight), #24205A); display: grid; place-items: center; }
.bt-service-media img { width: 100%; height: 100%; object-fit: cover; }
.bt-service-icon { color: #fff; font-size: 2.4rem; opacity: .9; }
.bt-service-body { display: flex; flex-direction: column; flex-grow: 1; padding: 1.4rem; }
.bt-price { font-weight: 700; color: var(--bt-midnight); }
.bt-price-muted { color: var(--bt-slate); font-weight: 500; }
.bt-empty { padding: clamp(2rem, 5vw, 3rem); }

/* Bands */
.bt-request-band, .bt-contact-band { border-radius: calc(var(--bt-radius) + 6px); padding: clamp(1.75rem, 5vw, 3rem); color: rgba(255, 255, 255, .85); }
.bt-request-band { background: radial-gradient(70% 120% at 100% 0, rgba(112, 71, 235, .45), transparent 60%), var(--bt-midnight); }
.bt-contact-band { background: linear-gradient(120deg, var(--bt-blue-dark), var(--bt-purple)); }
.bt-steps-inline { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; padding: 0; margin: 1.25rem 0 0; list-style: none; counter-reset: s; }
.bt-steps-inline li { counter-increment: s; font-weight: 600; color: #fff; }
.bt-steps-inline li::before { content: counter(s); display: inline-grid; place-items: center; width: 1.6rem; height: 1.6rem; margin-right: .5rem; border-radius: 50%; background: var(--bt-yellow); color: var(--bt-space); font-size: .8rem; }
.bt-contact-list li { display: flex; gap: .75rem; align-items: flex-start; margin-bottom: .75rem; }
.bt-contact-list i { font-size: 1.15rem; }
.bt-contact-list a { color: #fff; }

/* Inner page header */
.bt-page-head { color: #fff; padding: clamp(2.5rem, 6vw, 4rem) 0; background: radial-gradient(60% 120% at 90% 0, rgba(112, 71, 235, .35), transparent 65%), linear-gradient(180deg, var(--bt-space), var(--bt-midnight)); }
.bt-page-head h1 { font-size: clamp(1.9rem, 1.3rem + 2.4vw, 3rem); font-weight: 800; }
.bt-breadcrumb { --bs-breadcrumb-divider-color: rgba(255, 255, 255, .5); --bs-breadcrumb-item-active-color: rgba(255, 255, 255, .75); margin-bottom: 1rem; font-size: .9rem; }
.bt-breadcrumb a { color: #fff; }

/* Catalogue filters, detail */
.bt-filters .form-label { font-weight: 600; font-size: .9rem; }
.bt-detail-image { width: 100%; max-height: 360px; object-fit: cover; border-radius: 10px; }
@media (min-width: 992px) { .bt-sticky { position: sticky; top: 6rem; } }

/* Request wizard */
.bt-stepper { display: flex; gap: .5rem; padding: 0; margin: 0 0 2rem; list-style: none; }
.bt-stepper li { flex: 1; display: flex; flex-direction: column; align-items: center; gap: .4rem; text-align: center; font-size: .8rem; color: var(--bt-slate); position: relative; }
.bt-stepper li:not(:last-child)::after { content: ''; position: absolute; top: 1rem; left: calc(50% + 1.3rem); right: calc(-50% + 1.3rem); height: 2px; background: var(--bt-border); }
.bt-stepper-num { display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: 50%; border: 2px solid var(--bt-border); background: #fff; font-weight: 700; }
.bt-stepper li.is-current { color: var(--bt-midnight); font-weight: 600; }
.bt-stepper li.is-current .bt-stepper-num { border-color: var(--bt-blue-dark); color: var(--bt-blue-dark); }
.bt-stepper li.is-done .bt-stepper-num { background: var(--bt-green); border-color: var(--bt-green); color: #fff; }
.bt-stepper li.is-done::after { background: var(--bt-green); }
@media (max-width: 575.98px) { .bt-stepper-label { display: none; } .bt-stepper li.is-current .bt-stepper-label { display: block; } }
.bt-form .form-label { font-weight: 600; }
.bt-form .form-control, .bt-form .form-select, .bt-filters .form-control, .bt-filters .form-select { border-radius: 10px; padding: .65rem .85rem; border-color: #CBD2E0; }
.bt-form .form-control:focus, .bt-filters .form-control:focus, .bt-filters .form-select:focus { border-color: var(--bt-blue); box-shadow: 0 0 0 .2rem rgba(53, 107, 255, .2); }
.bt-review { display: grid; grid-template-columns: minmax(8rem, 30%) 1fr; gap: .5rem 1rem; margin: 0; padding: 1rem; background: var(--bt-soft); border-radius: 10px; }
.bt-review dt { color: var(--bt-slate); font-weight: 600; }
.bt-review dd { margin: 0; white-space: pre-line; overflow-wrap: anywhere; }
.bt-choice { display: flex; align-items: center; gap: 1rem; text-decoration: none; color: inherit; transition: border-color .2s ease; }
.bt-choice:hover { border-color: var(--bt-blue); color: inherit; }
.bt-choice-title { display: block; font-weight: 700; }
.bt-choice-action { color: var(--bt-blue-dark); font-weight: 600; white-space: nowrap; }
@media (max-width: 575.98px) { .bt-choice { flex-wrap: wrap; } .bt-choice-action { width: 100%; } }
.bt-confirmation { border-left: 4px solid var(--bt-green); }
.bt-success-icon { font-size: 2rem; color: var(--bt-green); }
.bt-reference { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 1.35rem; font-weight: 700; letter-spacing: .04em; }

/* Footer */
.bt-footer { background: var(--bt-space); color: rgba(255, 255, 255, .78); padding: 3.5rem 0 1.5rem; }
.bt-footer-heading { font-size: .8rem; text-transform: uppercase; letter-spacing: .08em; color: #fff; margin-bottom: 1rem; }
.bt-footer-text { color: rgba(255, 255, 255, .7); }
.bt-footer-links li { margin-bottom: .5rem; }
.bt-footer-links a { color: rgba(255, 255, 255, .78); text-decoration: none; }
.bt-footer-links a:hover { color: #fff; text-decoration: underline; }
.bt-footer-bottom { border-top: 1px solid rgba(255, 255, 255, .1); margin-top: 2.5rem; padding-top: 1.25rem; font-size: .875rem; }

html { scroll-behavior: smooth; scroll-padding-top: 5rem; }

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { animation: none !important; transition: none !important; }
}
