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

Space Vanta Theme 1.0

Module:
Collection Bundle Stream

File:
brand.css

Version:
1.1

Purpose:
Brand Visual DNA

Phase:
Brand Visual Optimization 1.0
Phase 01 — Brand DNA

Responsibilities:

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

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);
}


/* =========================================
   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;
}


/*
   Small spatial marker before
   primary Bundle eyebrow.
*/

.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-collection-bundle__bundle-choice-label::after {

    content: "↗";

    font-size: 13px;

    line-height: 1;

    letter-spacing: 0;

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

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


/* =========================================
   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);
}


/* -----------------------------------------
   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);
}


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

    content: "→";

    font-size: 12px;

    line-height: 1;

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

    transition:
        transform 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);
}


/* =========================================
   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);

    /*
       Multi-layer metallic surface.

       The middle cool-blue field is deliberately
       restrained so the CTA remains Accessible
       Premium rather than becoming a blue button.
    */
    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.

   This establishes the metallic material
   even before hover.
*/

.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.

   Existing hover behavior is preserved,
   but the sweep is now more visible.
*/

.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 Mark
----------------------------------------- */

.sv-collection-bundle__option-add-mark {

    position: relative;

    z-index: 2;

    width: 30px;
    height: 30px;

    display: inline-flex;

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

    border:
        1px solid rgba(76, 86, 98, 0.42);

    background:
        rgba(244, 247, 249, 0.24);

    font-size: 15px;

    line-height: 1;

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

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


/* =========================================
   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
----------------------------------------- */

.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);
}


/*
   Make the directional arrow feel
   like a spatial navigation marker.
*/

.sv-collection-bundle__related-arrow {

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

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


/* =========================================
   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);
    }


    /* -------------------------------------
       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:
            translateX(3px);
    }


    /*
       Construction corner.

       This corrects the selector so the
       existing Level 2 corner interaction
       actually responds to hovering the
       Option Choice itself.
    */

    .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(2px, -2px, 0);

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

        background:
            rgba(248, 250, 252, 0.44);

        color:
            #536a80;
    }


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

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

        padding-left:
            4px;

        padding-right:
            4px;
    }


    /* -------------------------------------
       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.42);
    }

}


/* =========================================
   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__bundle-choice::before {

        width: 56px;
        height: 56px;
    }


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

        max-width: 160px;
    }


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

        width: 18px;
        height: 18px;
    }


    .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: 27px;
        height: 27px;

        font-size: 14px;
    }

}


/* =========================================
   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::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-included-item,
    .sv-collection-bundle__related-trigger,
    .sv-collection-bundle__related-arrow {

        transition: none;
    }

}