@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=Sora:wght@600;700;800&display=swap');

:root {
    --ink: #111513;
    --graphite: #2b302c;
    --muted: #68716c;
    --canvas: #f6f4ec;
    --panel: #fffefa;
    --line: #ded9ca;
    --line-dark: rgba(255, 254, 250, .14);
    --emerald: #11885b;
    --emerald-bright: #55d88e;
    --amber: #c88419;
    --coral: #d95f45;
    --violet: #6654d9;
}

* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    overflow-x: hidden;
    background: var(--canvas);
    color: var(--ink);
    font-family: Manrope, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

h1,
h2,
h3,
.display-font {
    font-family: Sora, Manrope, ui-sans-serif, system-ui, sans-serif;
    letter-spacing: 0;
}

a,
button,
summary,
input,
textarea {
    transition: background-color .2s ease, border-color .2s ease, box-shadow .2s ease, color .2s ease, opacity .2s ease, transform .2s ease;
}

button,
input,
textarea,
select {
    font: inherit;
}

input,
textarea {
    border-radius: .85rem;
}

input:focus,
textarea:focus {
    border-color: var(--emerald);
    box-shadow: 0 0 0 4px rgba(17, 136, 91, .14);
    outline: none;
}

::selection {
    background: rgba(85, 216, 142, .3);
}

.site-shell {
    min-height: 100vh;
    background:
        linear-gradient(90deg, rgba(17, 136, 91, .04) 1px, transparent 1px),
        linear-gradient(180deg, rgba(17, 136, 91, .04) 1px, transparent 1px),
        var(--canvas);
    background-size: 44px 44px;
}

.brand-mark {
    display: grid;
    height: 2.35rem;
    width: 2.35rem;
    place-items: center;
    border-radius: .8rem;
    color: #fffefa;
    background:
        linear-gradient(135deg, rgba(85, 216, 142, .28), transparent 42%),
        #111513;
    box-shadow: inset 0 0 0 1px rgba(255, 254, 250, .12), 0 14px 26px rgba(17, 21, 19, .16);
}

.nav-link {
    position: relative;
    color: #4c554f;
}

.nav-link:hover,
.nav-link.is-active {
    color: var(--ink);
}

.nav-link.is-active::after,
.nav-link:hover::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -.55rem;
    height: 2px;
    border-radius: 999px;
    background: var(--emerald);
}

.hamburger-btn {
    display: inline-flex;
    height: 2.6rem;
    width: 2.6rem;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    border: 1px solid var(--line);
    border-radius: .8rem;
    background: rgba(255, 254, 250, .82);
}

.hamburger-btn span {
    display: block;
    height: 2px;
    width: 1.15rem;
    border-radius: 999px;
    background: var(--ink);
    transform-origin: center;
}

.hamburger-btn[aria-expanded="true"] span:nth-child(1) {
    transform: translateY(6px) rotate(45deg);
}

.hamburger-btn[aria-expanded="true"] span:nth-child(2) {
    opacity: 0;
}

.hamburger-btn[aria-expanded="true"] span:nth-child(3) {
    transform: translateY(-6px) rotate(-45deg);
}

.mobile-menu a {
    border-radius: .8rem;
    padding: .75rem .9rem;
}

.page-band {
    position: relative;
    overflow: hidden;
    border-bottom: 1px solid rgba(17, 21, 19, .08);
    background:
        radial-gradient(circle at 78% 12%, rgba(85, 216, 142, .18), transparent 32%),
        radial-gradient(circle at 6% 20%, rgba(200, 132, 25, .16), transparent 28%),
        linear-gradient(135deg, #fffefa, #efeadc);
}

.hero-slider {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background:
        linear-gradient(125deg, rgba(17, 21, 19, .96), rgba(29, 35, 31, .94) 52%, rgba(61, 50, 26, .9)),
        url("images/security-suite.svg") right center / min(760px, 70vw) no-repeat;
}

.hero-slider::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background:
        linear-gradient(90deg, rgba(255, 254, 250, .06) 1px, transparent 1px),
        linear-gradient(180deg, rgba(255, 254, 250, .05) 1px, transparent 1px);
    background-size: 54px 54px;
    mask-image: linear-gradient(90deg, #000, transparent 78%);
}

.hero-slide {
    display: none;
    animation: fadeSlide .55s ease both;
}

.hero-slide.is-active {
    display: block;
}

.slider-dot {
    height: 10px;
    width: 10px;
    border-radius: 999px;
    background: rgba(255, 254, 250, .38);
}

.slider-dot.is-active {
    width: 36px;
    background: var(--emerald-bright);
}

.hero-visual {
    position: relative;
    min-height: 430px;
}

.scan-card {
    position: relative;
    overflow: hidden;
    border: 1px solid var(--line-dark);
    border-radius: 1.4rem;
    background: linear-gradient(180deg, rgba(255, 254, 250, .12), rgba(255, 254, 250, .05));
    box-shadow: 0 30px 80px rgba(0, 0, 0, .34);
    backdrop-filter: blur(18px);
}

.scan-card::after {
    content: "";
    position: absolute;
    inset: -45% 0 auto;
    height: 65%;
    background: linear-gradient(180deg, transparent, rgba(85, 216, 142, .16), transparent);
    animation: scan 4.6s linear infinite;
}

.signal-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    border: 1px solid rgba(255, 254, 250, .1);
    border-radius: 1rem;
    background: rgba(255, 254, 250, .08);
    padding: .85rem;
}

.signal-bars span {
    display: block;
    height: .45rem;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--emerald-bright), var(--amber));
}

.eyebrow,
.page-kicker {
    color: var(--emerald);
    font-size: .76rem;
    font-weight: 800;
    letter-spacing: .18em;
    text-transform: uppercase;
}

.page-title {
    color: var(--ink);
    font-size: clamp(2.45rem, 5vw, 4.6rem);
    font-weight: 800;
    line-height: 1.02;
}

.accent {
    color: var(--emerald);
}

.section-heading {
    margin-inline: auto;
    max-width: 760px;
    text-align: center;
}

.section-heading h2 {
    margin-top: .8rem;
    color: var(--ink);
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 800;
    line-height: 1.08;
}

.section-heading span {
    display: block;
    margin-top: 1rem;
    color: var(--muted);
    line-height: 1.75;
}

.section-heading-dark .eyebrow,
.section-heading-dark p {
    color: var(--emerald-bright);
}

.section-heading-dark h2 {
    color: #fffefa;
}

.section-heading-dark span {
    color: rgba(255, 254, 250, .72);
}

.soft-section {
    background: linear-gradient(180deg, rgba(255, 254, 250, .74), rgba(239, 234, 220, .78));
}

.dark-section {
    position: relative;
    overflow: hidden;
    background:
        linear-gradient(90deg, rgba(255, 254, 250, .05) 1px, transparent 1px),
        linear-gradient(180deg, rgba(255, 254, 250, .04) 1px, transparent 1px),
        #111513;
    background-size: 48px 48px;
    color: #fffefa;
}

.glass-card,
.product-card,
.feature-card,
.step-card,
.testimonial-card,
.review-panel,
.review-list-card,
.faq-item,
.policy-card {
    border: 1px solid rgba(17, 21, 19, .1);
    border-radius: 1.15rem;
    background: rgba(255, 254, 250, .9);
    box-shadow: 0 18px 45px rgba(44, 38, 23, .08);
}

.product-card,
.feature-card,
.step-card,
.testimonial-card,
.policy-card {
    padding: 1.35rem;
}

.product-card {
    position: relative;
    display: flex;
    min-height: 100%;
    flex-direction: column;
}

.product-card:hover,
.feature-card:hover,
.step-card:hover,
.testimonial-card:hover,
.review-list-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 24px 55px rgba(44, 38, 23, .12);
}

.product-card.is-featured {
    border-color: rgba(17, 136, 91, .36);
    box-shadow: 0 24px 60px rgba(17, 136, 91, .16);
}

.badge-pill,
.ribbon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(17, 136, 91, .22);
    border-radius: 999px;
    background: rgba(85, 216, 142, .14);
    color: #0b6845;
    padding: .38rem .72rem;
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.ribbon {
    position: absolute;
    right: 1.1rem;
    top: 1rem;
}

.icon-tile,
.review-list-card strong,
.feature-card span,
.support-row span {
    display: grid;
    height: 2.55rem;
    width: 2.55rem;
    flex: 0 0 2.55rem;
    place-items: center;
    border-radius: .9rem;
    background: #111513;
    color: var(--emerald-bright);
    font-weight: 800;
}

.feature-card h2,
.feature-card h3,
.step-card h3,
.testimonial-card figcaption {
    margin-top: 1rem;
    color: var(--ink);
    font-size: 1.04rem;
    font-weight: 800;
}

.feature-card p,
.step-card p,
.testimonial-card blockquote,
.review-list-card p,
.policy-card p {
    margin-top: .55rem;
    color: var(--muted);
    font-size: .92rem;
    line-height: 1.68;
}

.review-list-card {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    padding: 1.05rem;
}

.review-list-card > div {
    min-width: 0;
}

.review-list-card a,
.review-list-card div {
    overflow-wrap: anywhere;
}

.metric-tile {
    border: 1px solid rgba(255, 254, 250, .14);
    border-radius: 1rem;
    background: rgba(255, 254, 250, .08);
    padding: 1rem;
    backdrop-filter: blur(12px);
}

.metric-tile strong {
    display: block;
    color: #fffefa;
    font-size: 1.55rem;
    font-weight: 800;
}

.metric-tile span {
    display: block;
    margin-top: .25rem;
    color: rgba(255, 254, 250, .68);
    font-size: .76rem;
    font-weight: 700;
}

.btn-primary,
.btn-secondary,
.outline-blue-btn,
.visit-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.85rem;
    border-radius: .9rem;
    padding: .82rem 1.15rem;
    font-size: .86rem;
    font-weight: 800;
    line-height: 1.2;
}

.btn-primary,
.visit-btn-red {
    border: 1px solid #111513;
    background: #111513;
    color: #fffefa;
    box-shadow: 0 16px 34px rgba(17, 21, 19, .18);
}

.btn-primary:hover,
.visit-btn-red:hover {
    background: #1e251f;
    transform: translateY(-2px);
}

.btn-secondary,
.outline-blue-btn,
.visit-btn {
    border: 1px solid var(--line);
    background: rgba(255, 254, 250, .86);
    color: var(--ink);
}

.btn-secondary:hover,
.outline-blue-btn:hover,
.visit-btn:hover {
    border-color: rgba(17, 136, 91, .4);
    background: rgba(85, 216, 142, .14);
    transform: translateY(-2px);
}

.product-image-panel {
    display: grid;
    place-items: center;
    overflow: hidden;
    border: 1px solid rgba(17, 21, 19, .08);
    border-radius: 1rem;
    background:
        radial-gradient(circle at 28% 18%, rgba(85, 216, 142, .18), transparent 34%),
        radial-gradient(circle at 82% 70%, rgba(200, 132, 25, .13), transparent 32%),
        #f8f5e9;
}

.product-image {
    width: auto;
    max-width: 90%;
    height: auto;
    max-height: 96%;
    object-fit: contain;
    filter: drop-shadow(0 18px 22px rgba(17, 21, 19, .18));
}

.product-image-card {
    height: 210px;
    max-width: 96%;
}

.product-image-detail {
    width: 100%;
    height: 320px;
    max-width: 100%;
}

.product-image-cart {
    height: 76px;
    max-width: 96%;
}

.form-shell input,
.form-shell textarea {
    border: 1px solid var(--line);
    background: #fffefa;
}

.form-shell label {
    color: var(--graphite);
}

.faq-item {
    padding: 1.25rem;
}

.faq-item summary {
    cursor: pointer;
    color: var(--ink);
    font-weight: 800;
}

.faq-item p {
    margin-top: .75rem;
    color: var(--muted);
    line-height: 1.7;
}

.policy-card.prose h2,
.review-panel.prose h2 {
    margin-top: 1.75rem;
    color: var(--ink);
    font-family: Sora, Manrope, sans-serif;
    font-size: 1.18rem;
    font-weight: 800;
}

.policy-card.prose p,
.review-panel.prose p {
    margin-top: .85rem;
    line-height: 1.78;
}

.service-visual {
    min-height: 360px;
    background:
        linear-gradient(120deg, rgba(17, 21, 19, .94), rgba(17, 21, 19, .78)),
        url("images/antivirus-services.png") center / cover no-repeat;
}

.service-visual-mobile {
    min-height: 300px;
    background:
        linear-gradient(120deg, rgba(17, 21, 19, .9), rgba(17, 21, 19, .66)),
        url("images/mobile-antivirus.png") center / cover no-repeat;
}

.fade-up {
    animation: fadeUp .7s ease both;
}

@keyframes fadeSlide {
    from {
        opacity: 0;
        transform: translateY(10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes fadeUp {
    from {
        opacity: 0;
        transform: translateY(14px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes scan {
    from {
        transform: translateY(-20%);
    }
    to {
        transform: translateY(190%);
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: .001ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: .001ms !important;
    }
}

@media (max-width: 767px) {
    .hero-slider {
        background:
            linear-gradient(125deg, rgba(17, 21, 19, .97), rgba(29, 35, 31, .94)),
            url("images/security-suite.svg") right bottom / 560px no-repeat;
    }

    .hero-visual {
        min-height: 320px;
    }

    .page-title {
        font-size: clamp(2.2rem, 12vw, 3.25rem);
    }

    .product-image-card {
        height: 185px;
    }

    .product-image-detail {
        height: 260px;
    }
}
