@font-face {
    font-family: "Space Grotesk";
    font-style: normal;
    font-weight: 400 700;
    font-display: swap;
    src: url("../fonts/space-grotesk/space-grotesk-latin-ext.woff2") format("woff2");
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
    font-family: "Space Grotesk";
    font-style: normal;
    font-weight: 400 700;
    font-display: swap;
    src: url("../fonts/space-grotesk/space-grotesk-latin.woff2") format("woff2");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
    color-scheme: dark;
    --bs-font-sans-serif: "Space Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif;
    --bs-body-font-family: var(--bs-font-sans-serif);
    --bs-body-color: #f5f7fa;
    --bs-body-color-rgb: 245, 247, 250;
    --bs-body-bg: #00111b;
    --bs-body-bg-rgb: 0, 17, 27;
    --bs-primary: #168ff0;
    --bs-primary-rgb: 22, 143, 240;
    --brand-icon: #39aaf5;
    --bs-secondary-color: #c5cdd4;
    --bs-tertiary-bg: #031a27;
    --bs-border-color: rgba(0, 142, 214, .38);
    --bs-link-color: #f5f7fa;
    --bs-link-hover-color: #55c8ff;
    --text-base: 1rem;
    --text-md: 1.0625rem;
    --text-lg: 1.125rem;
    scroll-behavior: smooth;
    scroll-padding-top: 82px;
}

body { min-width: 320px; }
a { text-decoration: none; }
section[id] { scroll-margin-top: 78px; }
.btn-primary {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--bs-primary);
    --bs-btn-border-color: var(--bs-primary);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--bs-primary);
    --bs-btn-hover-border-color: var(--bs-primary);
    --bs-btn-focus-shadow-rgb: 22, 143, 240;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--bs-primary);
    --bs-btn-active-border-color: var(--bs-primary);
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: var(--bs-primary);
    --bs-btn-disabled-border-color: var(--bs-primary);
}
.cta-button {
    --bs-btn-padding-x: 24px;
    --bs-btn-padding-y: .75rem;
    --bs-btn-border-radius: 999px;
    --bs-btn-font-weight: 600;
    display: inline-flex;
    min-height: 48px;
    align-items: center;
    justify-content: center;
    transition: background-color 180ms ease, border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}
.hero-actions .cta-button { min-height: 52px; }
.cta-button.btn-primary {
    --bs-btn-bg: #0875cf;
    --bs-btn-border-color: #0875cf;
    --bs-btn-hover-bg: #0967b4;
    --bs-btn-hover-border-color: #0967b4;
    --bs-btn-active-bg: #0967b4;
    --bs-btn-active-border-color: #0967b4;
    --bs-btn-disabled-bg: #0875cf;
    --bs-btn-disabled-border-color: #0875cf;
    box-shadow: 0 4px 16px rgba(8, 117, 207, .22);
}
.cta-button.btn-outline-light {
    --bs-btn-color: #fff;
    --bs-btn-bg: transparent;
    --bs-btn-border-color: rgba(255, 255, 255, .4);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: rgba(255, 255, 255, .1);
    --bs-btn-hover-border-color: rgba(255, 255, 255, .65);
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: rgba(255, 255, 255, .14);
    --bs-btn-active-border-color: rgba(255, 255, 255, .65);
}
.cta-button:focus-visible { outline: 3px solid #55c8ff; outline-offset: 3px; }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
    .cta-button:hover { transform: translateY(-2px); }
}
.cta-button:active, .cta-button.active { transform: translateY(0); }
@media (prefers-reduced-motion: reduce) {
    .cta-button { transform: none; transition: none; }
}
.skip-link { position: fixed; z-index: 1080; top: .5rem; left: .5rem; padding: .6rem 1rem; border-radius: .35rem; background: var(--bs-primary); color: #fff; transform: translateY(-150%); }
.skip-link:focus { color: #fff; transform: translateY(0); }

.back-to-top {
    position: fixed;
    z-index: 1030;
    right: max(1.25rem, env(safe-area-inset-right));
    bottom: max(1.25rem, env(safe-area-inset-bottom));
    display: grid;
    width: 56px;
    height: 56px;
    place-items: center;
    padding: 0;
    border: 1px solid rgba(57, 170, 245, .32);
    border-radius: 50%;
    background: rgba(3, 26, 39, .9);
    box-shadow: 0 4px 16px rgba(0, 8, 15, .2);
    color: var(--brand-icon);
    font-size: 1.25rem;
    cursor: pointer;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(8px);
    transition: opacity 180ms ease, transform 180ms ease, visibility 180ms ease, background-color 180ms ease, border-color 180ms ease;
}
.back-to-top.is-visible { opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0); }
.back-to-top:focus-visible { outline: 2px solid #55c8ff; outline-offset: 4px; }
@media (hover: hover) {
    .back-to-top:hover { border-color: var(--brand-icon); background: #0a3046; }
}

.site-navbar {
    background: linear-gradient(
        110deg,
        rgba(3, 26, 43, .88),
        rgba(12, 53, 78, .78)
    );
    border-bottom: 1px solid rgba(57, 170, 245, .18);
}
.brand-logo { display: block; width: auto; height: 6rem; }
.navbar-dark .navbar-nav .nav-link { position: relative; color: #e1e8ee; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
.navbar-dark .navbar-nav .nav-link:hover,
.navbar-dark .navbar-nav .nav-link:focus,
.navbar-dark .navbar-nav .nav-link.active { color: #fff; }
.navbar-dark .navbar-nav .nav-link::after { position: absolute; right: .5rem; bottom: .2rem; left: .5rem; height: 2px; background: var(--bs-primary); content: ""; opacity: 0; transform: scaleX(0); transform-origin: left; transition: opacity .18s ease, transform .18s ease; }
.navbar-dark .navbar-nav .nav-link.active::after,
.navbar-dark .navbar-nav .nav-link:hover::after,
.navbar-dark .navbar-nav .nav-link:focus-visible::after { opacity: 1; transform: scaleX(1); }
.navbar-dark .navbar-toggler-icon {
    background-image: linear-gradient(var(--brand-icon), var(--brand-icon)), linear-gradient(var(--brand-icon), var(--brand-icon)), linear-gradient(var(--brand-icon), var(--brand-icon));
    background-position: center 25%, center 50%, center 75%;
    background-repeat: no-repeat;
    background-size: 100% 2px;
}

.hero { position: relative; min-height: 620px; overflow: hidden; isolation: isolate; padding-top: 5rem; }
.hero-image, .hero-overlay { position: absolute; z-index: -1; inset: 0; width: 100%; height: 100%; }
.hero-image { object-fit: cover; object-position: center 42%; }
.hero-overlay { z-index: 0; background: linear-gradient(90deg, rgba(0, 13, 22, .97) 0%, rgba(0, 13, 22, .84) 40%, rgba(0, 13, 22, .2) 100%), linear-gradient(0deg, #00111b 0%, transparent 35%); }
.hero-content { z-index: 1; }
.hero h1 span, .contact-headline span { color: var(--bs-primary); }
.hero-copy { max-width: 42rem; }
/* Applied only by JavaScript; the page stays visible when scripting is disabled. */
.hero-image.intro-pending, .stats-item.intro-pending { opacity: 0; }
@media (prefers-reduced-motion: reduce) {
    .hero-image.intro-pending, .stats-item.intro-pending { opacity: 1; }
}
.accent-rule { display: inline-block; flex: 0 0 2.3rem; height: .3rem; border-radius: 1rem; background: var(--bs-primary); box-shadow: 0 0 .8rem rgba(22, 143, 240, .25); }
.stats-strip { border-bottom: 1px solid var(--bs-border-color); background: linear-gradient(120deg, rgba(0, 16, 26, .98), rgba(0, 13, 22, .98)); }
.stats-item { display: flex; min-height: 5.25rem; align-items: center; gap: 1rem; padding: 1rem 1.5rem; }
.stats-item > i { flex: 0 0 2.5rem; color: var(--brand-icon); font-size: 2.2rem; text-align: center; }
.stats-title { margin: 0 0 .15rem; font-size: 1.15rem; font-weight: 700; line-height: 1.25; }
.stats-description { margin: 0; color: var(--bs-secondary-color); font-size: .95rem; line-height: 1.35; }
@media (max-width: 767.98px) {
    .stats-item { min-height: 4.75rem; padding: .9rem 1rem; }
    .stats-strip .col:not(:last-child) .stats-item { border-bottom: 1px solid rgba(0, 142, 214, .22); }
}
@media (min-width: 768px) and (max-width: 1199.98px) {
    .stats-strip .col:not(:nth-child(3n)):not(:last-child) .stats-item { border-right: 1px solid rgba(0, 142, 214, .3); }
}
@media (min-width: 1200px) {
    .stats-strip .col:not(:last-child) .stats-item { border-right: 1px solid rgba(0, 142, 214, .3); }
}
.section-surface { background: linear-gradient(120deg, rgba(0, 16, 26, .98), rgba(0, 13, 22, .98)); }
.section-alt { background: linear-gradient(120deg, #031a27, #00131f); }
.section-intro { font-size: var(--text-lg); line-height: 1.6; }
.services-grid > .col { display: flex; }
.service-card {
    width: 100%;
    min-height: 14rem;
    border: 1px solid var(--bs-border-color);
    border-radius: 16px;
    background: linear-gradient(145deg, #062234, #001521 80%);
    box-shadow: 0 8px 24px rgba(0, 8, 15, .24), inset 0 1px 0 rgba(255, 255, 255, .025);
    cursor: pointer;
    transition: transform 200ms ease, border-color 200ms ease, box-shadow 200ms ease;
}
.service-card:focus-visible {
    outline: 2px solid #55c8ff;
    outline-offset: 3px;
    border-color: rgba(57, 170, 245, .72);
    box-shadow: 0 12px 28px rgba(0, 8, 15, .32), 0 0 20px rgba(57, 170, 245, .1);
}
.service-card .card-body { flex: 1; flex-direction: column; justify-content: center; gap: 12px; padding: .75rem; text-align: center; }
.service-card .card-body > div { width: 100%; }
.service-card h3 { margin-bottom: .4rem; font-size: var(--text-lg); line-height: 1.4; }
.service-card p { font-size: var(--text-base); line-height: 1.6; }
.service-icon {
    display: grid;
    flex: 0 0 auto;
    width: 56px;
    height: 56px;
    place-items: center;
    border: 1px solid rgba(57, 170, 245, .28);
    border-radius: 16px;
    background: linear-gradient(145deg, rgba(57, 170, 245, .12), rgba(22, 143, 240, .04));
    box-shadow: 0 0 16px rgba(57, 170, 245, .1), inset 0 1px 0 rgba(255, 255, 255, .04);
    color: var(--brand-icon);
    font-size: 1.8rem;
    line-height: 1;
    text-align: center;
    text-shadow: 0 0 10px rgba(57, 170, 245, .25);
    transition: border-color 200ms ease, box-shadow 200ms ease;
}
.service-card:focus-visible .service-icon {
    border-color: rgba(57, 170, 245, .48);
    box-shadow: 0 0 20px rgba(57, 170, 245, .18), inset 0 1px 0 rgba(255, 255, 255, .04);
}
@media (hover: hover) {
    .service-card:hover {
        border-color: rgba(57, 170, 245, .72);
        box-shadow: 0 12px 28px rgba(0, 8, 15, .32), 0 0 20px rgba(57, 170, 245, .1);
    }
    .service-card:hover .service-icon {
        border-color: rgba(57, 170, 245, .48);
        box-shadow: 0 0 20px rgba(57, 170, 245, .18), inset 0 1px 0 rgba(255, 255, 255, .04);
    }
}
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
    .service-card:hover { transform: translateY(-3px); }
}
@media (prefers-reduced-motion: reduce) {
    .service-card, .service-icon { transition: none; }
}
.technology-marquee { overflow-x: auto; padding-block: 1rem; }
.technology-marquee:focus-visible { outline: 2px solid var(--brand-icon); outline-offset: 2px; }
.technology-track { display: flex; width: max-content; }
.technology-group { display: flex; flex: 0 0 auto; justify-content: space-around; gap: 1rem; width: max-content; min-width: var(--technology-group-min-width, 0px); margin: 0; padding: 0 1rem 0 0; list-style: none; }
.technology-group > li { flex: 0 0 auto; width: clamp(8rem, 12vw, 11rem); }
.technology-group[data-technology-clone] { display: none; }
@keyframes technology-scroll-right {
    from { transform: translateX(-50%); }
    to { transform: translateX(0); }
}
@media (prefers-reduced-motion: no-preference) {
    .technology-marquee.is-animated { overflow-x: hidden; }
    .technology-marquee.is-animated .technology-track { animation: technology-scroll-right 40s linear infinite; }
    .technology-marquee.is-animated .technology-group[data-technology-clone] { display: flex; }
}
.technology-card { display: flex; min-height: 112px; flex-direction: column; align-items: center; justify-content: center; gap: .55rem; padding: .75rem; text-align: center; transition: transform .2s ease; }
.technology-card i { color: var(--brand-icon); font-size: 2.8rem; line-height: 1; filter: drop-shadow(0 0 .55rem rgba(57, 170, 245, .28)); transition: transform .2s ease, filter .2s ease; }
.technology-card span { color: #f5f7fa; font-weight: 600; letter-spacing: .015em; }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
    .technology-card:hover { transform: translateY(-2px); }
    .technology-card:hover i { transform: translateY(-2px) scale(1.04); filter: drop-shadow(0 0 .9rem rgba(57, 170, 245, .48)); }
}
@media (prefers-reduced-motion: reduce) {
    .technology-card, .technology-card i { transition: none; }
}
.portfolio-intro { color: #e7ebef; }
.team-intro { color: #e7ebef; }
.team-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); width: 100%; margin: 0; gap: 1.8rem; }
.team-grid > .col { min-width: 0; }
@media (max-width: 1199.98px) {
    .team-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 575.98px) {
    .team-grid { grid-template-columns: minmax(0, 1fr); }
}
.team-card { overflow: hidden; border: 1px solid var(--bs-border-color); border-radius: 28.8px; background: rgba(0, 21, 33, .78); transition: transform .2s ease, border-color .2s ease, background-color .2s ease; }
.team-card:hover { transform: translateY(-3px); border-color: rgba(0, 180, 255, .8); background: rgba(0, 32, 48, .9); }
.team-portrait { position: relative; display: grid; flex-shrink: 0; width: 100%; aspect-ratio: 4 / 3; overflow: hidden; place-items: center; border-bottom: 1px solid rgba(0, 142, 214, .3); background: radial-gradient(circle at 50% 38%, rgba(22, 143, 240, .22), transparent 45%), linear-gradient(145deg, #092638, #04131f 70%, #132b32); }
.team-portrait img { position: absolute; z-index: 3; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.team-portrait::before, .team-portrait::after { position: absolute; border: 1px solid rgba(57, 170, 245, .18); border-radius: 50%; content: ""; }
.team-portrait::before { width: 12rem; height: 12rem; }
.team-portrait::after { width: 15.6rem; height: 15.6rem; }
.team-initials { position: relative; z-index: 1; display: grid; width: 7.8rem; height: 7.8rem; place-items: center; border: 1px solid rgba(57, 170, 245, .65); border-radius: 50%; background: rgba(0, 17, 27, .78); box-shadow: 0 0 2.4rem rgba(22, 143, 240, .16); color: #f5f7fa; font-size: 2.4rem; font-weight: 700; letter-spacing: .04em; }
.team-portrait-icon { position: absolute; z-index: 2; right: calc(50% - 4.32rem); bottom: calc(50% - 3.84rem); display: grid; width: 2.4rem; height: 2.4rem; place-items: center; border: 1px solid rgba(57, 170, 245, .7); border-radius: 50%; background: #062033; color: var(--brand-icon); font-size: 1.02rem; }
.team-card .card-body { padding: 1.5rem 1.2rem; }
.team-card h3 { margin-bottom: .3rem !important; font-size: 1.5rem; }
.team-role { color: var(--bs-secondary-color); font-size: calc(var(--text-md) * 1.2); line-height: 1.6; }
.team-quote { max-width: 54rem; margin-right: auto; margin-left: auto; padding: 1.5rem; border: 1px solid rgba(57, 170, 245, .28); border-left: 4px solid var(--bs-primary); border-radius: var(--bs-border-radius-lg); background: linear-gradient(120deg, rgba(9, 38, 56, .9), rgba(4, 19, 31, .88)); }
.team-quote-icon { flex: 0 0 auto; margin-top: .1rem; color: var(--brand-icon); font-size: 2rem; }
.team-quote blockquote { color: #f5f7fa; font-size: 1.05rem; font-style: italic; }
.team-quote figcaption { color: var(--bs-secondary-color); font-size: .95rem; font-style: normal; font-weight: 600; }

.portfolio-carousel { position: relative; }
.carousel-window { overflow: hidden; padding-block: 1px; }
.carousel-track { display: flex; transition: transform .42s cubic-bezier(.22, .61, .36, 1); will-change: transform; }
.portfolio-card { position: relative; flex: 0 0 calc((100% - 2rem) / 3); aspect-ratio: 1.92 / 1; overflow: hidden; border-color: rgba(0, 169, 232, .55); background: linear-gradient(135deg, #092638, #04131f 65%, #132b32); }
.portfolio-card img { position: absolute; z-index: 1; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity .25s ease; }
.portfolio-card.has-image img { opacity: 1; }
.portfolio-fallback { position: absolute; inset: 0; display: grid; place-items: center; color: var(--brand-icon); font-size: clamp(2.5rem, 6vw, 5rem); }
.portfolio-card.has-image .portfolio-fallback { opacity: 0; }
.carousel-arrow { position: absolute; z-index: 2; top: 50%; display: grid; width: 2.7rem; height: 2.7rem; place-items: center; padding: 0; border-radius: 50%; background: rgba(0, 20, 33, .9); transform: translateY(-50%); }
.carousel-arrow { color: var(--brand-icon); border-color: var(--brand-icon); }
.carousel-arrow:hover, .carousel-arrow:focus-visible { color: #00111b; border-color: var(--brand-icon); background: var(--brand-icon); }
.carousel-prev { left: -.65rem; }
.carousel-next { right: -.65rem; }
.carousel-arrow:disabled { opacity: .45; }
.carousel-dot { width: .75rem; height: .75rem; padding: 0; border: 1px solid var(--bs-primary); border-radius: 50%; background: transparent; }
.carousel-dot[aria-current="true"] { border-color: var(--bs-primary); background: var(--bs-primary); }
.partner-item { position: relative; display: flex; height: 10rem; min-height: 10rem; margin-inline: .75rem; flex-direction: column; align-items: center; justify-content: center; gap: .25rem; color: #f5f3ff; font-size: .72rem; font-weight: 600; letter-spacing: .05em; }
.partner-item img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; opacity: 0; transition: filter 250ms ease, opacity 250ms ease; }
.partner-item.has-image img { opacity: 1; }
@media (hover: hover) {
    .partner-item img { filter: grayscale(100%); }
    .partner-item.has-image img { opacity: .65; }
    .partner-item.has-image:hover img { filter: grayscale(0%); opacity: 1; }
}
.partner-item.has-image > i, .partner-item.has-image > span { display: none; }
.partner-item > i { color: var(--brand-icon); font-size: 2rem; }
@media (min-width: 992px) { .partner-grid > * { flex: 0 0 auto; width: 16.6667%; } }
.form-control, .contact-form .form-select { color: var(--bs-body-color); border-color: var(--bs-border-color); background-color: rgba(0, 20, 32, .78); }
.form-control::placeholder { color: #d5dce2; opacity: 1; }
.form-control:focus, .contact-form .form-select:focus { color: var(--bs-body-color); border-color: #1eb3f3; background-color: rgba(0, 20, 32, .9); }
.contact-section { padding-block: clamp(3rem, 6vw, 5rem); background: radial-gradient(ellipse at 50% 35%, rgba(22, 143, 240, .08), transparent 65%), linear-gradient(120deg, #00101a, #000d16); }
.contact-layout { width: 100%; max-width: 900px; margin-inline: auto; }
.contact-primary { min-width: 0; }
.contact-intro { max-width: 900px; margin: 0 auto 2rem; }
.contact-headline { margin-bottom: 1rem; font-size: clamp(1.75rem, 3.5vw, 2.75rem); line-height: 1.2; }
.contact-form { display: grid; width: 100%; max-width: 900px; gap: 1.5rem; margin-inline: auto; padding: clamp(1.25rem, 4vw, 3rem); border: 1px solid rgba(57, 170, 245, .45); border-radius: 24px; background: linear-gradient(145deg, #08283b, #031b2a 80%); box-shadow: 0 16px 48px rgba(0, 8, 15, .3), inset 0 1px 0 rgba(255, 255, 255, .04); }
.contact-required-note, .contact-form .form-note { font-size: .9375rem; line-height: 1.6; }
.contact-required { color: #75cdff; }
.contact-form .form-label { margin-bottom: .625rem; font-size: var(--text-base); font-weight: 600; }
.contact-optional { color: var(--bs-secondary-color); font-size: .9375rem; font-weight: 400; }
.contact-form .form-control, .contact-form .form-select { min-height: 52px; padding: .875rem 1rem; border-color: rgba(57, 170, 245, .32); border-radius: 12px; font-size: 1rem; line-height: 1.5; }
.contact-form .form-select { --bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23f5f7fa' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"); padding-right: 3rem; }
.contact-form .form-select option { color: var(--bs-body-color); background-color: #031b2a; }
.contact-form .form-control::placeholder { color: #aabcc9; }
.contact-form .form-control:focus, .contact-form .form-select:focus { border-color: #55c8ff; box-shadow: 0 0 0 .2rem rgba(85, 200, 255, .2); }
.contact-form textarea.form-control { min-height: 172px; resize: vertical; }
.contact-submit { width: 100%; min-height: 56px; font-size: var(--text-lg); }
.contact-form .form-note { padding-top: 1rem; border-top: 1px solid rgba(57, 170, 245, .2); }
.contact-submit:focus-visible { outline: 2px solid #55c8ff; outline-offset: 4px; }
.contact-channels { display: grid; justify-items: start; min-width: 0; gap: .125rem; margin: 1rem 0 0; color: var(--bs-secondary-color); font-size: var(--text-base); line-height: 1.6; text-align: left; }
.contact-channels > li { min-width: 0; max-width: 100%; }
.contact-channel-link, .contact-channel-location { display: inline-flex; min-height: 32px; max-width: 100%; align-items: center; gap: .5rem; padding-block: .25rem; color: var(--bs-secondary-color); }
.contact-channel-link { transition: color 180ms ease; }
.contact-channel-link > span, .contact-channel-location > span { min-width: 0; overflow-wrap: anywhere; }
.contact-channel-link i, .contact-channel-location i { flex: 0 0 auto; width: 20px; color: var(--brand-icon); font-size: 20px; text-align: center; }
.contact-channel-messengers { display: flex; gap: .25rem; }
.contact-channel-messenger { width: 32px; min-height: 44px; justify-content: flex-start; }
.contact-channel-messenger i { width: auto; font-size: 24px; }
.contact-channel-link:focus-visible { outline: 2px solid #55c8ff; outline-offset: 3px; border-radius: 4px; }
@media (hover: hover) {
    .contact-channel-link:hover { color: #75cdff; }
}
@media (pointer: coarse) {
    .contact-channel-link { min-height: 44px; }
    .contact-channel-messenger { width: 44px; }
    .contact-channel-messengers { gap: 0; }
}
.site-footer { border-top: 1px solid rgba(0, 132, 194, .35); background: #000f18; }
.site-footer p { color: var(--bs-secondary-color); font-size: 14px; line-height: 1.6; }
.footer-provider-link { color: inherit; text-decoration: underline; text-underline-offset: .2em; }
.footer-provider-link:hover, .footer-provider-link:focus-visible { color: var(--bs-link-hover-color); }
.footer-provider-link:focus-visible { outline: 2px solid #55c8ff; outline-offset: 3px; border-radius: 4px; }
.modal-backdrop { --bs-backdrop-opacity: .85; }
.site-info-modal {
    --bs-modal-width: 660px;
    --bs-modal-color: #f5f7fa;
    --bs-modal-bg: #031b2a;
    --bs-modal-border-color: rgba(57, 170, 245, .45);
    --bs-modal-border-radius: 24px;
    --bs-modal-header-border-color: rgba(0, 142, 214, .38);
}
.site-info-modal .modal-content { background: linear-gradient(145deg, #08283b, #031b2a 80%); box-shadow: 0 16px 48px rgba(0, 8, 15, .3), inset 0 1px 0 rgba(255, 255, 255, .04); }
.site-info-modal .modal-body { padding: clamp(.875rem, 3.5vw, 2.5rem); }
.service-providers-modal { --bs-modal-width: 1000px; }
.service-providers-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; }
.site-info-modal .btn-close:focus-visible { outline: 2px solid #55c8ff; outline-offset: 3px; }
.privacy-policy-modal { --bs-modal-width: 1000px; --bs-modal-margin: 16px; }
.privacy-policy-modal .modal-dialog { width: calc(100% - 32px); max-width: var(--bs-modal-width); margin-inline: auto; }
.privacy-policy-modal .modal-body { line-height: 1.65; overflow-wrap: anywhere; }
.privacy-policy-modal h3 { margin: 1.75rem 0 .75rem; font-size: 1.125rem; font-weight: 600; }
.privacy-policy-modal p { margin-bottom: 1rem; }
.privacy-policy-modal p:last-child { margin-bottom: 0; }
.service-provider-details { min-width: 0; padding: 1rem; border-left: 4px solid var(--bs-primary); border-radius: 0 var(--bs-border-radius-lg) var(--bs-border-radius-lg) 0; background: rgba(57, 170, 245, .06); line-height: 1.65; overflow-wrap: anywhere; }
.service-provider-title { margin: 0 0 1rem; font-size: 1.125rem; font-weight: 600; }
.service-provider-details p { margin: 0 0 .85rem; }
.service-provider-details p:last-child { margin-bottom: 0; }
.service-provider-details a { text-underline-offset: .2em; }
.service-provider-details a:focus-visible { outline: 2px solid #55c8ff; outline-offset: 3px; border-radius: 2px; }

@media (min-width: 768px) {
    .service-providers-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 700px) {
    :root { scroll-padding-top: 70px; }
    .hero { min-height: 570px; }
    .hero-overlay { background: linear-gradient(90deg, rgba(0, 13, 22, .88), rgba(0, 13, 22, .4)), linear-gradient(0deg, #00111b 0%, transparent 45%); }
    .portfolio-card { flex-basis: calc((100% - 1rem) / 2); }
    .carousel-prev { left: -.5rem; }
    .carousel-next { right: -.5rem; }
}
@media (max-width: 420px) {
    .hero { min-height: 540px; }
    .hero h1 { font-size: 2.5rem; }
    .portfolio-card { flex-basis: 100%; aspect-ratio: 1.75 / 1; }
}
@media (prefers-reduced-motion: reduce) {
    :root { scroll-behavior: auto; }
    *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
