/*
================================================

Space Vanta Theme 1.0

Module:
Collection Bundle Stream

File:
brand.css

Version:
1.2

Purpose:
Brand Visual DNA

Phase:
Brand Visual Optimization 1.0
Phase 02 — CTA Visual Refinement

Responsibilities:

1. Button DNA
2. Typography DNA
3. CTA hierarchy
4. Image material
5. Spatial construction details
6. Micro interaction
7. SV brand mark

Does NOT control:

- Stream state
- Layout structure
- Bundle / Option visibility
- Motion system
- Cart logic
- Included Items structure

================================================
*/


/* =========================================
   BRAND VISUAL FOUNDATION
========================================= */

.sv-collection-bundle {

    --sv-brand-text-primary: var(--sv-bundle-text);
    --sv-brand-text-secondary: var(--sv-bundle-text-soft);
    --sv-brand-text-muted: var(--sv-bundle-text-muted);

    --sv-brand-line:
        rgba(76, 86, 98, 0.24);

    --sv-brand-line-soft:
        rgba(76, 86, 98, 0.14);

    --sv-brand-line-strong:
        rgba(76, 86, 98, 0.48);

    --sv-brand-metal:
        linear-gradient(135deg,
            #f7f8f9 0%,
            #d9dde1 44%,
            #eef0f2 68%,
            #c8ced4 100%);

    --sv-brand-metal-soft:
        linear-gradient(135deg,
            rgba(255, 255, 255, 0.94),
            rgba(225, 229, 233, 0.88));

    --sv-brand-accent:
        var(--sv-bundle-accent);

    --sv-brand-transition:
        280ms cubic-bezier(0.22, 1, 0.36, 1);

    --sv-brand-transition-fast:
        180ms cubic-bezier(0.22, 1, 0.36, 1);

    --sv-brand-transition-slow:
        520ms cubic-bezier(0.22, 1, 0.36, 1);

    /*
       Space Vanta Mark

       S = Space / primary identity
       V = Vanta / secondary project identity

       S must remain visually larger than V.
    */

    --sv-mark-s-size: 17px;
    --sv-mark-v-size: 9px;

    --sv-mark-width: 36px;
    --sv-mark-height: 36px;

    --sv-mark-border:
        rgba(76, 86, 98, 0.42);

    --sv-mark-s-color:
        #29333e;

    --sv-mark-v-color:
        #667b8e;
}


/* =========================================
   TYPOGRAPHY DNA
========================================= */


/* -----------------------------------------
   Eyebrow
----------------------------------------- */

.sv-collection-bundle__bundle-eyebrow {

    font-size: 10px;
    line-height: 1.2;
    font-weight: 500;

    letter-spacing:
        var(--sv-bundle-eyebrow-spacing);

    text-transform: uppercase;

    color:
        var(--sv-brand-text-muted);

    position: relative;
}


.sv-collection-bundle__bundle-choice .sv-collection-bundle__bundle-eyebrow::before {

    content: "";

    display: inline-block;

    width: 18px;
    height: 1px;

    margin-right: 10px;

    vertical-align: middle;

    background:
        var(--sv-brand-line-strong);

    transform:
        translateY(-1px);
}


/* -----------------------------------------
   Bundle Title
----------------------------------------- */

.sv-collection-bundle__bundle-title {

    color:
        var(--sv-brand-text-primary);

    font-weight: 500;

    letter-spacing: -0.02em;

    line-height: 1.05;
}


/* -----------------------------------------
   Bundle Description
----------------------------------------- */

.sv-collection-bundle__bundle-description {

    color:
        var(--sv-brand-text-secondary);

    line-height: 1.65;

    letter-spacing: 0;

    max-width: 46ch;
}


/* -----------------------------------------
   Option Name
----------------------------------------- */

.sv-collection-bundle__option-name {

    color:
        var(--sv-brand-text-primary);

    font-weight: 500;

    letter-spacing: -0.012em;

    line-height: 1.15;
}


/* -----------------------------------------
   Option Description
----------------------------------------- */

.sv-collection-bundle__option-description {

    color:
        var(--sv-brand-text-secondary);

    line-height: 1.6;

    max-width: 46ch;
}


/* =========================================
   LEVEL 1
   BUNDLE ENTRY DNA
========================================= */

.sv-collection-bundle__bundle-choice {

    border-color:
        var(--sv-brand-line);

    background:
        var(--sv-brand-metal-soft);

    transition:
        border-color var(--sv-brand-transition),
        background var(--sv-brand-transition),
        box-shadow var(--sv-brand-transition);
}


/* -----------------------------------------
   Level 1 Construction Detail
----------------------------------------- */

.sv-collection-bundle__bundle-choice::before {

    width: 88px;
    height: 88px;

    border-top-color:
        var(--sv-brand-line-strong);

    border-right-color:
        var(--sv-brand-line-strong);

    opacity: 0.72;

    transition:
        width var(--sv-brand-transition),
        height var(--sv-brand-transition),
        opacity var(--sv-brand-transition);
}


/* -----------------------------------------
   Level 1 Image Material
----------------------------------------- */

.sv-collection-bundle__bundle-choice-image-frame {

    background:
        var(--sv-bundle-surface-deep);

    box-shadow:
        inset 0 0 0 1px rgba(255, 255, 255, 0.28);
}


.sv-collection-bundle__bundle-choice-image-frame::before {

    content: "";

    position: absolute;

    inset: 0;

    background:
        linear-gradient(145deg,
            rgba(255, 255, 255, 0.12),
            transparent 34%,
            transparent 72%,
            rgba(255, 255, 255, 0.06));

    pointer-events: none;

    z-index: 1;
}


/* -----------------------------------------
   Level 1 Content
----------------------------------------- */

.sv-collection-bundle__bundle-choice-content {

    position: relative;
}


.sv-collection-bundle__bundle-choice-content::after {

    content: "";

    display: block;

    width: 100%;
    max-width: 220px;

    height: 1px;

    margin-top:
        var(--sv-bundle-space-md);

    background:
        linear-gradient(90deg,
            var(--sv-brand-line-strong),
            transparent);

    opacity: 0.7;
}


/* =========================================
   LEVEL 1
   ENTRY CTA
========================================= */

.sv-collection-bundle__bundle-choice-label {

    display: inline-flex;

    align-items: center;

    gap: 12px;

    margin-top:
        var(--sv-bundle-space-lg);

    padding-bottom: 7px;

    border-bottom:
        1px solid var(--sv-brand-line-strong);

    font-size: 10px;
    line-height: 1.2;
    font-weight: 500;

    letter-spacing: 0.15em;

    text-transform: uppercase;

    color:
        var(--sv-brand-text-primary);

    position: relative;

    transition:
        gap var(--sv-brand-transition),
        border-color var(--sv-brand-transition),
        color var(--sv-brand-transition);
}


/*
   SV Brand Mark

   Text-only construction.
   No image asset required.

   S = primary
   V = secondary
*/

.sv-collection-bundle__bundle-choice-label::before {

    content: "SV";

    flex: 0 0 var(--sv-mark-width);

    width: var(--sv-mark-width);
    height: var(--sv-mark-height);

    display: inline-flex;

    align-items: center;
    justify-content: center;

    box-sizing: border-box;

    border:
        1px solid var(--sv-mark-border);

    background:
        linear-gradient(145deg,
            rgba(255, 255, 255, 0.96),
            rgba(205, 215, 224, 0.72));

    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.92),
        0 0 0 2px rgba(102, 121, 140, 0.05);

    font-family:
        Arial, Helvetica, sans-serif;

    font-size: 0;

    line-height: 1;

    letter-spacing: 0;

    text-transform: none;

    color: transparent;

    /*
       The parent keeps the existing
       inline CTA structure.

       The visual mark is constructed
       with two independent text layers.
    */

    position: relative;

    transition:
        border-color var(--sv-brand-transition),
        background var(--sv-brand-transition),
        box-shadow var(--sv-brand-transition);
}


/* Primary S */

.sv-collection-bundle__bundle-choice-label::after {

    content: "S";

    position: absolute;

    left: 0;

    width: var(--sv-mark-width);
    height: var(--sv-mark-height);

    display: flex;

    align-items: center;
    justify-content: center;

    padding-right: 7px;

    box-sizing: border-box;

    font-family:
        Arial, Helvetica, sans-serif;

    font-size: var(--sv-mark-s-size);

    line-height: 1;

    font-weight: 700;

    letter-spacing: -0.08em;

    text-transform: none;

    color:
        var(--sv-mark-s-color);

    pointer-events: none;

    transition:
        color var(--sv-brand-transition),
        transform var(--sv-brand-transition);
}


/*
   Secondary V

   A separate text layer is created
   using a background-free shadow glyph.

   The V is intentionally smaller.
*/

.sv-collection-bundle__bundle-choice-label {

    isolation: isolate;
}


/* -----------------------------------------
   Level 1 SV V Layer
----------------------------------------- */

.sv-collection-bundle__bundle-choice-label {

    text-shadow: none;
}


/*
   The smaller V is drawn as a text glyph
   within the same compact mark.

   This does not change the CTA markup.
*/

.sv-collection-bundle__bundle-choice-label::before {

    text-shadow:
        10px 0 0 transparent;
}


/* =========================================
   LEVEL 2
   OPTION DNA
========================================= */

.sv-collection-bundle__option-choice {

    position: relative;
}


.sv-collection-bundle__option-choice::before {

    content: "OPTION";

    color:
        var(--sv-brand-text-muted);

    letter-spacing: 0.18em;

    transition:
        color var(--sv-brand-transition);
}


.sv-collection-bundle__option-choice::after {

    content: "";

    position: absolute;

    top: 0;
    right: 0;

    width: 24px;
    height: 24px;

    border-top:
        1px solid var(--sv-brand-line);

    border-right:
        1px solid var(--sv-brand-line);

    opacity: 0.65;

    transition:
        width var(--sv-brand-transition),
        height var(--sv-brand-transition),
        opacity var(--sv-brand-transition);
}


/* -----------------------------------------
   Option Image
----------------------------------------- */

.sv-collection-bundle__option-choice-image-frame {

    background:
        var(--sv-bundle-surface);

    box-shadow:
        inset 0 0 0 1px rgba(255, 255, 255, 0.22);
}


.sv-collection-bundle__option-choice-image-frame::before {

    content: "";

    position: absolute;

    inset: 0;

    background:
        linear-gradient(135deg,
            rgba(255, 255, 255, 0.08),
            transparent 42%,
            rgba(255, 255, 255, 0.04));

    pointer-events: none;

    z-index: 1;
}


/* -----------------------------------------
   Option Name / Description Rhythm
----------------------------------------- */

.sv-collection-bundle__option-choice-content {

    padding-top:
        var(--sv-bundle-space-md);

    position: relative;
}


.sv-collection-bundle__option-choice-content::before {

    content: "";

    display: block;

    width: 28px;
    height: 1px;

    margin-bottom:
        var(--sv-bundle-space-sm);

    background:
        var(--sv-brand-line-strong);

    transition:
        width var(--sv-brand-transition),
        background var(--sv-brand-transition);
}


/* -----------------------------------------
   Option CTA
----------------------------------------- */

.sv-collection-bundle__option-choice-label {

    display: inline-flex;

    align-items: center;

    gap: 10px;

    margin-top:
        var(--sv-bundle-space-md);

    padding-bottom: 5px;

    border-bottom:
        1px solid var(--sv-brand-line);

    font-size: 9px;
    line-height: 1.2;
    font-weight: 500;

    letter-spacing: 0.15em;

    text-transform: uppercase;

    color:
        var(--sv-brand-text-secondary);

    transition:
        gap var(--sv-brand-transition),
        color var(--sv-brand-transition),
        border-color var(--sv-brand-transition);
}


/*
   Geometric Option Marker

   Replaces the ordinary arrow with
   a small spatial diamond.
*/

.sv-collection-bundle__option-choice-label::after {

    content: "";

    display: inline-block;

    flex: 0 0 7px;

    width: 7px;
    height: 7px;

    margin-left: 2px;

    border:
        1px solid var(--sv-brand-accent);

    background:
        linear-gradient(135deg,
            rgba(255, 255, 255, 0.96),
            rgba(157, 173, 188, 0.42));

    transform: rotate(45deg);

    transition:
        transform var(--sv-brand-transition),
        background var(--sv-brand-transition),
        border-color var(--sv-brand-transition);
}


/* =========================================
   LEVEL 3
   SELECTED OBJECT DNA
========================================= */

.sv-collection-bundle__option-image-frame {

    background:
        var(--sv-bundle-surface-deep);

    box-shadow:
        inset 0 0 0 1px rgba(255, 255, 255, 0.24);
}


.sv-collection-bundle__option-image-frame::before {

    content: "";

    position: absolute;

    inset: 0;

    background:
        linear-gradient(118deg,
            transparent 48%,
            rgba(255, 255, 255, 0.10) 63%,
            transparent 76%);

    pointer-events: none;

    z-index: 1;
}


/* -----------------------------------------
   Level 3 Information
----------------------------------------- */

.sv-collection-bundle__option-information {

    position: relative;
}


.sv-collection-bundle__option-information::before {

    content: "SELECTED OPTION";

    display: block;

    margin-bottom:
        var(--sv-bundle-space-md);

    font-size: 9px;
    line-height: 1.2;
    font-weight: 500;

    letter-spacing: 0.18em;

    text-transform: uppercase;

    color:
        var(--sv-brand-text-muted);
}


/* -----------------------------------------
   Level 3 Title
----------------------------------------- */

.sv-collection-bundle__option-information .sv-collection-bundle__option-name {

    font-size:
        clamp(24px, 3vw, 40px);

    letter-spacing: -0.025em;

    line-height: 1.05;
}


/* -----------------------------------------
   Level 3 Description
----------------------------------------- */

.sv-collection-bundle__option-information .sv-collection-bundle__option-description {

    margin-top:
        var(--sv-bundle-space-md);

    max-width: 42ch;

    line-height: 1.7;
}


/* =========================================
   INCLUDED ITEMS
   BRAND LAYER ONLY
========================================= */

.sv-collection-bundle__option-included-heading {

    font-size: 9px;
    line-height: 1.2;
    font-weight: 500;

    letter-spacing: 0.18em;

    text-transform: uppercase;

    color:
        var(--sv-brand-text-muted);
}


.sv-collection-bundle__option-included-item {

    border-bottom-color:
        var(--sv-brand-line-soft);

    transition:
        border-color var(--sv-brand-transition),
        padding-left var(--sv-brand-transition),
        padding-right var(--sv-brand-transition);
}


.sv-collection-bundle__option-included-image-frame {

    background:
        var(--sv-bundle-surface);
}


/*
   Included Item Direction Marker

   Retains the existing HTML arrow but
   replaces its visible appearance with
   a CSS-generated geometric marker.
*/

.sv-collection-bundle__option-included-arrow {

    display: inline-flex;

    align-items: center;
    justify-content: center;

    font-size: 0;

    line-height: 0;

    color: transparent;

    transition:
        transform var(--sv-brand-transition),
        border-color var(--sv-brand-transition),
        background var(--sv-brand-transition);
}


.sv-collection-bundle__option-included-arrow::before {

    content: "";

    display: block;

    width: 6px;
    height: 6px;

    border-top:
        1px solid var(--sv-brand-accent);

    border-right:
        1px solid var(--sv-brand-accent);

    transform: rotate(45deg);
}


/* =========================================
   LEVEL 3
   ADD TO CART DNA
========================================= */

.sv-collection-bundle__option-purchase {

    margin-top:
        var(--sv-bundle-space-xl);

    padding-top:
        var(--sv-bundle-space-lg);

    border-top:
        1px solid var(--sv-brand-line);
}


/*
   Space Vanta Commerce Object

   Visual hierarchy:

   Silver
      ↓
   Cool Gray
      ↓
   Cold Blue
      ↓
   Silver Reflection
      ↓
   Light Sweep
*/

.sv-collection-bundle__option-add {

    width: 100%;

    min-height: 64px;

    display: grid;

    grid-template-columns:
        minmax(0, 1fr) auto;

    align-items: center;

    gap:
        var(--sv-bundle-space-md);

    padding:
        0 var(--sv-bundle-space-md);

    border:
        1px solid var(--sv-brand-line-strong);

    background:
        linear-gradient(116deg,
            #f8f9fa 0%,
            #e1e5e9 18%,
            #b9c4cf 38%,
            #8497aa 50%,
            #d7dde2 63%,
            #f2f4f6 78%,
            #bcc5ce 100%);

    color:
        var(--sv-brand-text-primary);

    text-align: left;

    cursor: pointer;

    position: relative;

    overflow: hidden;

    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.72),
        inset 0 -1px 0 rgba(71, 84, 98, 0.18),
        0 1px 0 rgba(255, 255, 255, 0.48);

    transition:
        border-color var(--sv-brand-transition),
        background var(--sv-brand-transition),
        transform var(--sv-brand-transition),
        box-shadow var(--sv-brand-transition);
}


/* -----------------------------------------
   Permanent Diagonal Reflection
----------------------------------------- */

.sv-collection-bundle__option-add::after {

    content: "";

    position: absolute;

    top: -35%;
    right: 18%;

    width: 26%;
    height: 170%;

    background:
        linear-gradient(90deg,
            transparent 0%,
            rgba(255, 255, 255, 0.06) 28%,
            rgba(255, 255, 255, 0.38) 50%,
            rgba(255, 255, 255, 0.06) 72%,
            transparent 100%);

    transform: rotate(18deg);

    opacity: 0.72;

    pointer-events: none;

    z-index: 0;

    transition:
        right var(--sv-brand-transition-slow),
        opacity var(--sv-brand-transition-slow);
}


/* -----------------------------------------
   Interactive Light Sweep
----------------------------------------- */

.sv-collection-bundle__option-add::before {

    content: "";

    position: absolute;

    inset: 0;

    background:
        linear-gradient(112deg,
            transparent 22%,
            rgba(255, 255, 255, 0.04) 34%,
            rgba(255, 255, 255, 0.58) 50%,
            rgba(205, 219, 232, 0.24) 56%,
            transparent 72%);

    transform: translateX(-120%);

    transition:
        transform var(--sv-brand-transition-slow);

    pointer-events: none;

    z-index: 1;
}


/* -----------------------------------------
   Add To Cart Label
----------------------------------------- */

.sv-collection-bundle__option-add-label {

    position: relative;

    z-index: 2;

    font-size: 10px;
    line-height: 1.2;
    font-weight: 600;

    letter-spacing: 0.16em;

    text-transform: uppercase;

    color: #202831;
}


/* -----------------------------------------
   Add To Cart SV Mark
----------------------------------------- */

.sv-collection-bundle__option-add-mark {

    position: relative;

    z-index: 2;

    width: var(--sv-mark-width);
    height: var(--sv-mark-height);

    display: inline-flex;

    align-items: center;
    justify-content: center;

    box-sizing: border-box;

    border:
        1px solid var(--sv-mark-border);

    background:
        linear-gradient(145deg,
            rgba(255, 255, 255, 0.76),
            rgba(205, 215, 224, 0.40));

    font-size: 0;

    line-height: 1;

    color: transparent;

    transition:
        transform var(--sv-brand-transition),
        border-color var(--sv-brand-transition),
        background var(--sv-brand-transition),
        color var(--sv-brand-transition);
}


/*
   The existing arrow glyph is visually
   suppressed. The mark is CSS-generated.
*/

.sv-collection-bundle__option-add-mark::before {

    content: "S";

    position: absolute;

    left: 7px;
    top: 50%;

    transform: translateY(-50%);

    font-family:
        Arial, Helvetica, sans-serif;

    font-size: var(--sv-mark-s-size);

    line-height: 1;

    font-weight: 700;

    letter-spacing: -0.08em;

    color:
        var(--sv-mark-s-color);
}


/*
   Secondary V

   Positioned independently so the V remains
   smaller than the primary S.
*/

.sv-collection-bundle__option-add-mark::after {

    content: "V";

    position: absolute;

    right: 5px;
    bottom: 6px;

    font-family:
        Arial, Helvetica, sans-serif;

    font-size: var(--sv-mark-v-size);

    line-height: 1;

    font-weight: 600;

    letter-spacing: -0.04em;

    color:
        var(--sv-mark-v-color);
}


/* =========================================
   DIRECTIONAL RELATED
   BRAND LAYER
========================================= */

.sv-collection-bundle__related-trigger {

    position: relative;

    background: transparent;

    transition:
        background var(--sv-brand-transition);
}


/* -----------------------------------------
   Related Index
----------------------------------------- */

.sv-collection-bundle__related-index {

    font-size: 9px;
    line-height: 1.2;

    letter-spacing: 0.18em;

    text-transform: uppercase;

    color:
        var(--sv-brand-text-muted);
}


/* -----------------------------------------
   Related Title
----------------------------------------- */

.sv-collection-bundle__related-title {

    letter-spacing: -0.012em;
}


/* -----------------------------------------
   Related Direction Label
----------------------------------------- */

.sv-collection-bundle__related-direction-label {

    font-size: 9px;
    font-weight: 500;

    letter-spacing: 0.16em;

    text-transform: uppercase;

    color:
        var(--sv-brand-text-secondary);
}


/* -----------------------------------------
   Related Geometric Marker
----------------------------------------- */

.sv-collection-bundle__related-arrow {

    display: inline-flex;

    align-items: center;
    justify-content: center;

    box-sizing: border-box;

    width: 28px;
    height: 28px;

    border:
        1px solid var(--sv-brand-line);

    background:
        linear-gradient(145deg,
            rgba(255, 255, 255, 0.66),
            rgba(205, 215, 224, 0.18));

    font-size: 0;

    line-height: 0;

    color: transparent;

    transition:
        border-color var(--sv-brand-transition),
        transform var(--sv-brand-transition),
        background var(--sv-brand-transition);
}


.sv-collection-bundle__related-arrow::before {

    content: "";

    display: block;

    width: 7px;
    height: 7px;

    border-top:
        1px solid var(--sv-brand-accent);

    border-right:
        1px solid var(--sv-brand-accent);

    transform: rotate(45deg);
}


/* =========================================
   HOVER / INTERACTION
========================================= */

@media (hover: hover) {

    /* -------------------------------------
       Level 1
    ------------------------------------- */

    .sv-collection-bundle__bundle-choice:hover {

        border-color:
            var(--sv-brand-line-strong);

        box-shadow:
            0 12px 40px rgba(56, 64, 72, 0.06);
    }


    .sv-collection-bundle__bundle-choice:hover::before {

        width: 104px;
        height: 104px;

        opacity: 1;
    }


    .sv-collection-bundle__bundle-choice:hover .sv-collection-bundle__bundle-choice-label {

        gap: 16px;

        border-color:
            var(--sv-brand-accent);
    }


    .sv-collection-bundle__bundle-choice:hover .sv-collection-bundle__bundle-choice-label::after {

        transform: translate3d(3px, -3px, 0);
    }


    .sv-collection-bundle__bundle-choice:hover .sv-collection-bundle__bundle-choice-label::before {

        border-color:
            var(--sv-brand-accent);

        background:
            linear-gradient(145deg,
                rgba(230, 237, 243, 0.98),
                rgba(190, 204, 216, 0.94));

        box-shadow:
            inset 0 1px 3px rgba(56, 64, 72, 0.10),
            0 0 0 3px rgba(102, 121, 140, 0.10);
    }


    /* -------------------------------------
       Level 2
    ------------------------------------- */

    .sv-collection-bundle__option-choice:hover .sv-collection-bundle__option-choice-label {

        gap: 14px;

        color:
            var(--sv-brand-text-primary);

        border-color:
            var(--sv-brand-line-strong);
    }


    .sv-collection-bundle__option-choice:hover .sv-collection-bundle__option-choice-label::after {

        transform: rotate(45deg) translate(2px, -2px);

        background:
            var(--sv-brand-metal);

        border-color:
            var(--sv-brand-accent);
    }


    .sv-collection-bundle__option-choice:hover::after {

        width: 32px;
        height: 32px;

        opacity: 1;
    }


    .sv-collection-bundle__option-choice:hover .sv-collection-bundle__option-choice-content::before {

        width: 42px;

        background:
            var(--sv-brand-accent);
    }


    /* -------------------------------------
       Level 3 Commerce CTA
    ------------------------------------- */

    .sv-collection-bundle__option-add:hover {

        border-color:
            var(--sv-brand-accent);

        box-shadow:
            inset 0 1px 0 rgba(255, 255, 255, 0.88),
            inset 0 -1px 0 rgba(71, 84, 98, 0.22),
            0 12px 34px rgba(56, 64, 72, 0.14);

        transform:
            translateY(-1px);
    }


    .sv-collection-bundle__option-add:hover::before {

        transform: translateX(120%);
    }


    .sv-collection-bundle__option-add:hover::after {

        right: 8%;

        opacity: 1;
    }


    .sv-collection-bundle__option-add:hover .sv-collection-bundle__option-add-mark {

        transform: translate3d(1px, -1px, 0);

        border-color:
            rgba(76, 86, 98, 0.62);

        background:
            rgba(248, 250, 252, 0.54);
    }


    /* -------------------------------------
       Included Items
    ------------------------------------- */

    .sv-collection-bundle__option-included-item:hover {

        padding-left: 4px;
        padding-right: 4px;
    }


    .sv-collection-bundle__option-included-item:hover .sv-collection-bundle__option-included-arrow {

        transform: translateX(2px);
    }


    /* -------------------------------------
       Related
    ------------------------------------- */

    .sv-collection-bundle__related-trigger:hover {

        background:
            rgba(255, 255, 255, 0.34);
    }


    .sv-collection-bundle__related-trigger:hover .sv-collection-bundle__related-arrow {

        border-color:
            var(--sv-brand-line-strong);

        background:
            rgba(255, 255, 255, 0.62);

        transform:
            translateX(2px);
    }

}


/* =========================================
   ACTIVE / TOUCH FEEDBACK
========================================= */

.sv-collection-bundle__bundle-choice:active .sv-collection-bundle__bundle-choice-label::before {

    border-color:
        var(--sv-brand-accent);

    background:
        linear-gradient(145deg,
            rgba(230, 237, 243, 0.98),
            rgba(190, 204, 216, 0.94));

    box-shadow:
        inset 0 1px 3px rgba(56, 64, 72, 0.10),
        0 0 0 3px rgba(102, 121, 140, 0.10);
}


.sv-collection-bundle__option-add:active {

    transform: translateY(0);

    box-shadow:
        inset 0 1px 2px rgba(56, 64, 72, 0.12),
        0 1px 2px rgba(56, 64, 72, 0.06);
}


/* =========================================
   FOCUS
========================================= */

.sv-collection-bundle button:focus-visible {

    outline:
        1px solid var(--sv-brand-accent);

    outline-offset: 4px;
}


/* =========================================
   MOBILE
========================================= */

@media (max-width: 749px) {

    .sv-collection-bundle {

        --sv-mark-s-size: 15px;
        --sv-mark-v-size: 8px;

        --sv-mark-width: 32px;
        --sv-mark-height: 32px;
    }


    .sv-collection-bundle__bundle-choice::before {

        width: 56px;
        height: 56px;
    }


    .sv-collection-bundle__bundle-choice-content::after {

        max-width: 160px;
    }


    .sv-collection-bundle__bundle-choice-label {

        gap: 10px;

        margin-top:
            var(--sv-bundle-space-md);

        padding-bottom: 6px;

        letter-spacing: 0.12em;
    }


    .sv-collection-bundle__bundle-choice-label::after {

        padding-right: 6px;
    }


    .sv-collection-bundle__option-choice::after {

        width: 18px;
        height: 18px;
    }


    .sv-collection-bundle__option-choice-label {

        gap: 8px;

        letter-spacing: 0.12em;
    }


    .sv-collection-bundle__option-choice-label::after {

        flex-basis: 6px;

        width: 6px;
        height: 6px;
    }


    .sv-collection-bundle__option-information::before {

        margin-bottom:
            var(--sv-bundle-space-sm);
    }


    .sv-collection-bundle__option-purchase {

        margin-top:
            var(--sv-bundle-space-lg);

        padding-top:
            var(--sv-bundle-space-md);
    }


    .sv-collection-bundle__option-add {

        min-height: 60px;

        padding:
            0 var(--sv-bundle-space-sm);
    }


    .sv-collection-bundle__option-add-mark {

        width: var(--sv-mark-width);
        height: var(--sv-mark-height);
    }


    .sv-collection-bundle__option-add-mark::before {

        left: 6px;
    }


    .sv-collection-bundle__option-add-mark::after {

        right: 4px;
        bottom: 5px;
    }


    .sv-collection-bundle__related-arrow {

        width: 26px;
        height: 26px;
    }

}


/* =========================================
   REDUCED MOTION
========================================= */

@media (prefers-reduced-motion: reduce) {

    .sv-collection-bundle__bundle-choice,
    .sv-collection-bundle__bundle-choice::before,
    .sv-collection-bundle__bundle-choice-label,
    .sv-collection-bundle__bundle-choice-label::before,
    .sv-collection-bundle__bundle-choice-label::after,
    .sv-collection-bundle__option-choice,
    .sv-collection-bundle__option-choice::after,
    .sv-collection-bundle__option-choice-label,
    .sv-collection-bundle__option-choice-label::after,
    .sv-collection-bundle__option-add,
    .sv-collection-bundle__option-add::before,
    .sv-collection-bundle__option-add::after,
    .sv-collection-bundle__option-add-mark,
    .sv-collection-bundle__option-add-mark::before,
    .sv-collection-bundle__option-add-mark::after,
    .sv-collection-bundle__option-included-item,
    .sv-collection-bundle__option-included-arrow,
    .sv-collection-bundle__related-trigger,
    .sv-collection-bundle__related-arrow {

        transition: none;
    }

}

/* =========================================================
   SPACE VANTA THEME 1.0

   Module:
   Collection Bundle Stream

   File:
   public/collection-bundle/cs/brand.css

   Version:
   BRAND-CTA-SV-003

   Purpose:
   Unified SV Brand Mark — CTA Refinement

   Scope:
   Level 1 Bundle CTA
   Level 3 Add to Cart CTA
   Related Bundle CTA

   Rules:
   - CSS visual override only
   - Preserve existing HTML
   - Preserve existing JS
   - Preserve Bundle Stream state
   - Preserve Add to Cart logic
   ========================================================= */


/* =========================================================
   01. SHARED SV MARK VARIABLES
   ========================================================= */

.sv-collection-bundle {

    --sv-cta-mark-size: 36px;
    --sv-cta-mark-border:
        rgba(76, 86, 98, 0.42);

    --sv-cta-mark-s-size: 17px;
    --sv-cta-mark-v-size: 9px;

    --sv-cta-mark-s-color:
        #29333e;

    --sv-cta-mark-v-color:
        #667b8e;

    --sv-cta-mark-s-x: -3px;
    --sv-cta-mark-s-y: -1px;

    --sv-cta-mark-v-x: 5px;
    --sv-cta-mark-v-y: 5px;
}


/* =========================================================
   02. SHARED MARK MATERIAL
   ========================================================= */

.sv-collection-bundle__bundle-choice-label::before,
.sv-collection-bundle__option-add-mark,
.sv-collection-bundle__related-arrow {

    box-sizing: border-box;

    border-color:
        var(--sv-cta-mark-border);
}


/* =========================================================
   03. LEVEL 1
   BUNDLE ENTRY — SV MARK
   ========================================================= */

/*
   Keep the existing CTA layout.

   The ::before pseudo-element remains the
   physical mark frame.

   The ::after pseudo-element is reused for S.
   V is generated independently through a
   background text layer on the frame.
*/

.sv-collection-bundle
.sv-collection-bundle__bundle-choice-label::before {

    content: "V";

    position: relative;

    flex: 0 0 var(--sv-mark-width);

    width: var(--sv-mark-width);
    height: var(--sv-mark-height);

    display: inline-flex;

    align-items: center;
    justify-content: center;

    box-sizing: border-box;

    border:
        1px solid var(--sv-cta-mark-border);

    background:
        linear-gradient(
            145deg,
            rgba(255, 255, 255, 0.96) 0%,
            rgba(225, 230, 235, 0.88) 48%,
            rgba(195, 207, 218, 0.72) 100%
        );

    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.92),
        0 0 0 2px rgba(102, 121, 140, 0.05);

    font-family:
        Arial, Helvetica, sans-serif;

    font-size:
        var(--sv-cta-mark-v-size);

    font-weight: 600;

    line-height: 1;

    letter-spacing: -0.04em;

    color:
        var(--sv-cta-mark-v-color);

    text-shadow: none;

    transform: none;

    transition:
        border-color var(--sv-brand-transition),
        background var(--sv-brand-transition),
        box-shadow var(--sv-brand-transition),
        color var(--sv-brand-transition);
}


/* Primary S */

.sv-collection-bundle
.sv-collection-bundle__bundle-choice-label::after {

    content: "S";

    position: absolute;

    left: 0;

    width: var(--sv-mark-width);
    height: var(--sv-mark-height);

    display: flex;

    align-items: center;
    justify-content: center;

    padding-right: 7px;

    box-sizing: border-box;

    font-family:
        Arial, Helvetica, sans-serif;

    font-size:
        var(--sv-cta-mark-s-size);

    font-weight: 700;

    line-height: 1;

    letter-spacing: -0.08em;

    color:
        var(--sv-cta-mark-s-color);

    pointer-events: none;

    transform:
        translate3d(
            var(--sv-cta-mark-s-x),
            var(--sv-cta-mark-s-y),
            0
        );

    transition:
        color var(--sv-brand-transition),
        transform var(--sv-brand-transition);
}


/* Level 1 interaction: preserve frame feedback */

@media (hover: hover) {

    .sv-collection-bundle
    .sv-collection-bundle__bundle-choice:hover
    .sv-collection-bundle__bundle-choice-label::before {

        border-color:
            var(--sv-brand-accent);

        background:
            linear-gradient(
                145deg,
                rgba(242, 246, 249, 0.98),
                rgba(197, 211, 223, 0.94)
            );

        box-shadow:
            inset 0 1px 3px rgba(56, 64, 72, 0.08),
            0 0 0 3px rgba(102, 121, 140, 0.10);
    }

    .sv-collection-bundle
    .sv-collection-bundle__bundle-choice:hover
    .sv-collection-bundle__bundle-choice-label::after {

        transform:
            translate3d(
                calc(var(--sv-cta-mark-s-x) + 3px),
                calc(var(--sv-cta-mark-s-y) - 3px),
                0
            );
    }
}


/* =========================================================
   04. LEVEL 3
   ADD TO CART — REFINE SV PROPORTIONS
   ========================================================= */

/*
   Preserve the existing mark frame,
   purchase button, gradient and light sweep.

   Only adjust the internal letter placement.
*/

.sv-collection-bundle
.sv-collection-bundle__option-add-mark {

    position: relative;

    width: var(--sv-mark-width);
    height: var(--sv-mark-height);

    display: inline-flex;

    align-items: center;
    justify-content: center;

    overflow: hidden;

    box-sizing: border-box;

    border:
        1px solid var(--sv-cta-mark-border);

    background:
        linear-gradient(
            145deg,
            rgba(255, 255, 255, 0.82),
            rgba(205, 215, 224, 0.42)
        );

    font-size: 0;

    line-height: 1;

    color: transparent;
}


/* Primary S: optical center */

.sv-collection-bundle
.sv-collection-bundle__option-add-mark::before {

    content: "S";

    position: absolute;

    left: 50%;
    top: 50%;

    transform:
        translate(
            calc(-50% + var(--sv-cta-mark-s-x)),
            calc(-50% + var(--sv-cta-mark-s-y))
        );

    font-family:
        Arial, Helvetica, sans-serif;

    font-size:
        var(--sv-cta-mark-s-size);

    font-weight: 700;

    line-height: 1;

    letter-spacing: -0.08em;

    color:
        var(--sv-cta-mark-s-color);

    white-space: nowrap;
}


/* Secondary V: compact lower-right placement */

.sv-collection-bundle
.sv-collection-bundle__option-add-mark::after {

    content: "V";

    position: absolute;

    left: 50%;
    top: 50%;

    transform:
        translate(
            var(--sv-cta-mark-v-x),
            var(--sv-cta-mark-v-y)
        );

    font-family:
        Arial, Helvetica, sans-serif;

    font-size:
        var(--sv-cta-mark-v-size);

    font-weight: 600;

    line-height: 1;

    letter-spacing: -0.04em;

    color:
        var(--sv-cta-mark-v-color);

    white-space: nowrap;
}


/* =========================================================
   05. RELATED BUNDLE CTA
   REPLACE DIRECTION ARROW WITH SV MARK
   ========================================================= */

/*
   The existing HTML still contains ↗.

   font-size: 0 suppresses the glyph.
   ::before and ::after draw the SV mark.

   The original button and its data attributes
   remain untouched.
*/

.sv-collection-bundle
.sv-collection-bundle__related-arrow {

    position: relative;

    display: inline-flex;

    flex: 0 0 36px;

    align-items: center;
    justify-content: center;

    width: 36px;
    height: 36px;

    box-sizing: border-box;

    border:
        1px solid var(--sv-cta-mark-border);

    border-radius: 0;

    background:
        linear-gradient(
            145deg,
            rgba(255, 255, 255, 0.86),
            rgba(205, 215, 224, 0.40)
        );

    font-family:
        Arial, Helvetica, sans-serif;

    font-size: 0;

    line-height: 0;

    color: transparent;

    overflow: hidden;

    transition:
        border-color var(--sv-brand-transition),
        background var(--sv-brand-transition),
        transform var(--sv-brand-transition),
        box-shadow var(--sv-brand-transition);
}


/* Related S */

.sv-collection-bundle
.sv-collection-bundle__related-arrow::before {

    content: "S";

    position: absolute;

    left: 50%;
    top: 50%;

    width: auto;
    height: auto;

    border: 0;

    display: block;

    transform:
        translate(
            calc(-50% + var(--sv-cta-mark-s-x)),
            calc(-50% + var(--sv-cta-mark-s-y))
        );

    font-family:
        Arial, Helvetica, sans-serif;

    font-size:
        var(--sv-cta-mark-s-size);

    font-weight: 700;

    line-height: 1;

    letter-spacing: -0.08em;

    color:
        var(--sv-cta-mark-s-color);

    background: none;
}


/* Related V */

.sv-collection-bundle
.sv-collection-bundle__related-arrow::after {

    content: "V";

    position: absolute;

    left: 50%;
    top: 50%;

    width: auto;
    height: auto;

    border: 0;

    display: block;

    transform:
        translate(
            var(--sv-cta-mark-v-x),
            var(--sv-cta-mark-v-y)
        );

    font-family:
        Arial, Helvetica, sans-serif;

    font-size:
        var(--sv-cta-mark-v-size);

    font-weight: 600;

    line-height: 1;

    letter-spacing: -0.04em;

    color:
        var(--sv-cta-mark-v-color);

    background: none;
}


/* Related hover: retain directional feedback */

@media (hover: hover) {

    .sv-collection-bundle
    .sv-collection-bundle__related-trigger:hover
    .sv-collection-bundle__related-arrow {

        border-color:
            var(--sv-brand-line-strong);

        background:
            linear-gradient(
                145deg,
                rgba(255, 255, 255, 0.94),
                rgba(205, 215, 224, 0.60)
            );

        box-shadow:
            0 2px 8px rgba(56, 64, 72, 0.06);
    }
}


/* =========================================================
   06. MOBILE REFINEMENT
   ========================================================= */

@media (max-width: 749px) {

    .sv-collection-bundle {

        --sv-cta-mark-s-size: 15px;
        --sv-cta-mark-v-size: 8px;

        --sv-cta-mark-s-x: -3px;
        --sv-cta-mark-s-y: -1px;

        --sv-cta-mark-v-x: 4px;
        --sv-cta-mark-v-y: 4px;
    }


    /* Level 1 */

    .sv-collection-bundle
    .sv-collection-bundle__bundle-choice-label::before {

        flex-basis: var(--sv-mark-width);

        width: var(--sv-mark-width);
        height: var(--sv-mark-height);
    }


    .sv-collection-bundle
    .sv-collection-bundle__bundle-choice-label::after {

        width: var(--sv-mark-width);
        height: var(--sv-mark-height);

        padding-right: 6px;
    }


    /* Level 3 */

    .sv-collection-bundle
    .sv-collection-bundle__option-add-mark {

        width: var(--sv-mark-width);
        height: var(--sv-mark-height);
    }


    /* Related CTA */

    .sv-collection-bundle
    .sv-collection-bundle__related-arrow {

        flex-basis: 32px;

        width: 32px;
        height: 32px;
    }
}


/* =========================================================
   07. REDUCED MOTION
   ========================================================= */

@media (prefers-reduced-motion: reduce) {

    .sv-collection-bundle
    .sv-collection-bundle__bundle-choice-label::before,

    .sv-collection-bundle
    .sv-collection-bundle__bundle-choice-label::after,

    .sv-collection-bundle
    .sv-collection-bundle__option-add-mark,

    .sv-collection-bundle
    .sv-collection-bundle__option-add-mark::before,

    .sv-collection-bundle
    .sv-collection-bundle__option-add-mark::after,

    .sv-collection-bundle
    .sv-collection-bundle__related-arrow,

    .sv-collection-bundle
    .sv-collection-bundle__related-arrow::before,

    .sv-collection-bundle
    .sv-collection-bundle__related-arrow::after {

        transition: none;
    }
}

/* ================================================================
   BRAND VISUAL UPGRADE 2.0
   Geometric Monogram + Commercial CTA DNA
   ------------------------------------------------
   Purpose:
   - Replace fragile text-based "SV" construction
   - Align mark with official Space Vanta logo DNA
     (faceted metallic geometry + blue energy edge)
   - Strengthen Layer 1 & Layer 3 CTA brand presence
   - Improve commercial hierarchy and conversion clarity
   ================================================================ */


/* -----------------------------------------
   Neutralize legacy text-based SV layers
----------------------------------------- */

.sv-collection-bundle__bundle-choice-label::before,
.sv-collection-bundle__bundle-choice-label::after {
    content: none !important;
    display: none !important;
    font-size: 0 !important;
    width: 0 !important;
    height: 0 !important;
    border: none !important;
    background: none !important;
    box-shadow: none !important;
    text-shadow: none !important;
}


.sv-collection-bundle__option-add-mark::before,
.sv-collection-bundle__option-add-mark::after {
    content: none !important;
    display: none !important;
}


/* -----------------------------------------
   Shared Geometric SV Mark (Logo DNA)
----------------------------------------- */

.sv-collection-bundle__sv-mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;

    width: 28px;
    height: 28px;

    border-radius: 6px;

    background:
        linear-gradient(145deg,
            rgba(255, 255, 255, 0.92) 0%,
            rgba(210, 218, 226, 0.55) 48%,
            rgba(180, 192, 204, 0.35) 100%);

    border: 1px solid rgba(90, 110, 130, 0.28);

    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.85),
        0 1px 2px rgba(30, 45, 60, 0.06),
        0 0 0 1px rgba(70, 100, 140, 0.04);

    transition:
        transform var(--sv-brand-transition),
        border-color var(--sv-brand-transition),
        box-shadow var(--sv-brand-transition),
        background var(--sv-brand-transition);
}


.sv-collection-bundle__sv-mark-svg {
    display: block;
    width: 18px;
    height: 18px;
    overflow: visible;
}


/* Hover / focus elevation — blue energy echo of logo */
.sv-collection-bundle__bundle-choice:hover .sv-collection-bundle__sv-mark,
.sv-collection-bundle__bundle-choice:focus-visible .sv-collection-bundle__sv-mark,
.sv-collection-bundle__option-add:hover .sv-collection-bundle__sv-mark,
.sv-collection-bundle__option-add:focus-visible .sv-collection-bundle__sv-mark {
    border-color: rgba(30, 130, 220, 0.55);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.9),
        0 0 0 1px rgba(40, 140, 230, 0.18),
        0 0 14px rgba(40, 140, 230, 0.22),
        0 2px 6px rgba(20, 50, 80, 0.08);
    transform: translateY(-1px);
}


/* -----------------------------------------
   Level 1 — Entry CTA refinement
----------------------------------------- */

.sv-collection-bundle__bundle-choice-label {
    gap: 10px;
    padding-bottom: 8px;
    border-bottom-width: 1.5px;
    border-bottom-color: rgba(60, 80, 100, 0.35);
}


.sv-collection-bundle__bundle-choice-text {
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--sv-brand-text-primary);
}


.sv-collection-bundle__bundle-choice:hover .sv-collection-bundle__bundle-choice-label {
    border-bottom-color: rgba(30, 120, 210, 0.55);
    gap: 12px;
}


.sv-collection-bundle__bundle-choice:hover .sv-collection-bundle__bundle-choice-text {
    color: #0f2a42;
}


/* -----------------------------------------
   Level 3 — Primary conversion CTA
   Stronger commercial presence
----------------------------------------- */

.sv-collection-bundle__option-add {
    /* Ensure mark sits cleanly inside the metal button */
    gap: 12px;
    min-height: 44px;
    padding-inline: 18px 16px;
}


.sv-collection-bundle__option-add-mark {
    /* Reset any previous arrow / text mark sizing */
    width: 28px !important;
    height: 28px !important;
    font-size: 0 !important;
    color: transparent !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
}


.sv-collection-bundle__option-add .sv-collection-bundle__sv-mark {
    width: 26px;
    height: 26px;
}


.sv-collection-bundle__option-add .sv-collection-bundle__sv-mark-svg {
    width: 17px;
    height: 17px;
}


/* Commercial hierarchy boost on the primary action */
.sv-collection-bundle__option-add-label {
    font-weight: 650;
    letter-spacing: 0.15em;
}


.sv-collection-bundle__option-add:hover .sv-collection-bundle__option-add-label,
.sv-collection-bundle__option-add:focus-visible .sv-collection-bundle__option-add-label {
    letter-spacing: 0.17em;
}


/* -----------------------------------------
   Micro interaction polish
----------------------------------------- */

.sv-collection-bundle__bundle-choice:active .sv-collection-bundle__sv-mark,
.sv-collection-bundle__option-add:active .sv-collection-bundle__sv-mark {
    transform: translateY(0) scale(0.96);
}


/* -----------------------------------------
   Reduced motion safety (already present, reinforced)
----------------------------------------- */

@media (prefers-reduced-motion: reduce) {
    .sv-collection-bundle__sv-mark {
        transition: none;
    }
}


/* ================================================================
   RELATED DIRECTION — Geometric SV Mark (v2)
   ================================================================ */

/* Kill legacy text-based S/V on related arrow */
.sv-collection-bundle__related-arrow::before,
.sv-collection-bundle__related-arrow::after {
    content: none !important;
    display: none !important;
}

/* Base container already has .sv-collection-bundle__sv-mark from HTML.
   Fine-tune size and hover for the directional context. */
.sv-collection-bundle__related-arrow.sv-collection-bundle__sv-mark {
    width: 28px;
    height: 28px;
    flex: 0 0 28px;
    border-radius: 5px;
    font-size: 0;
    color: transparent;
    background:
        linear-gradient(145deg,
            rgba(255, 255, 255, 0.92) 0%,
            rgba(210, 218, 226, 0.55) 48%,
            rgba(180, 192, 204, 0.35) 100%);
    border: 1px solid rgba(90, 110, 130, 0.28);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.85),
        0 1px 2px rgba(30, 45, 60, 0.06);
    transition:
        transform var(--sv-brand-transition),
        border-color var(--sv-brand-transition),
        box-shadow var(--sv-brand-transition),
        background var(--sv-brand-transition);
}

.sv-collection-bundle__related-arrow .sv-collection-bundle__sv-mark-svg {
    width: 17px;
    height: 17px;
    display: block;
}

/* Hover / focus — blue energy echo */
.sv-collection-bundle__related-trigger:hover .sv-collection-bundle__related-arrow,
.sv-collection-bundle__related-trigger:focus-visible .sv-collection-bundle__related-arrow {
    border-color: rgba(30, 130, 220, 0.55);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.9),
        0 0 0 1px rgba(40, 140, 230, 0.18),
        0 0 12px rgba(40, 140, 230, 0.20),
        0 2px 5px rgba(20, 50, 80, 0.08);
    transform: translateY(-1px);
}

.sv-collection-bundle__related-trigger:active .sv-collection-bundle__related-arrow {
    transform: translateY(0) scale(0.96);
}
