/* =========================================================
   SPADE — CUSTOMER ACCOUNT
   ========================================================= */

body.spade-account-page {
    background: #ffffff;
}


/* Remove default archive/page title */

.spade-account-page .hero-section {
    display: none !important;
}


/* Remove Blocksy width restrictions */

.spade-account-page #main-container,
.spade-account-page .site-main,
.spade-account-page .site-main > .ct-container,
.spade-account-page .site-main > .ct-container-full {
    width: 100% !important;
    max-width: none !important;

    margin: 0 !important;
    padding: 0 !important;
}


/* =========================================================
   LOGGED IN LAYOUT
   ========================================================= */

.spade-account-page--logged-in .woocommerce {
    width: min(1480px, 100%);

    display: grid;

    grid-template-columns:
        minmax(220px, 280px)
        minmax(0, 1fr);

    gap:
        clamp(34px, 4vw, 72px);

    margin:
        0
        auto;

    padding:
        clamp(46px, 5vw, 76px)
        clamp(18px, 3vw, 46px)
        90px;

    box-sizing:
        border-box;
}


/* =========================================================
   ACCOUNT NAVIGATION
   ========================================================= */

.spade-account-nav {
    position:
        sticky;

    top:
        120px;

    align-self:
        start;
}

.spade-account-nav__head {
    padding:
        0
        0
        26px;

    border-bottom:
        1px solid #e7e7e7;
}

.spade-account-nav__eyebrow {
    display:
        block;

    margin-bottom:
        7px;

    color:
        #777777;

    font-family:
        var(--spade-font-body, "Manrope", Arial, sans-serif);

    font-size:
        9px;

    font-weight:
        700;

    letter-spacing:
        .16em;

    text-transform:
        uppercase;
}

.spade-account-nav__name {
    display:
        block;

    color:
        #111111;

    font-family:
        var(--spade-font-heading, "DM Serif Display", Georgia, serif);

    font-size:
        31px;

    font-weight:
        400;

    line-height:
        1.05;
}

.spade-account-nav__list {
    display:
        block !important;

    margin:
        0 !important;

    padding:
        16px
        0
        0 !important;

    list-style:
        none !important;
}

.spade-account-nav__item {
    margin:
        0 !important;

    padding:
        0 !important;
}

.spade-account-nav__item a {
    min-height:
        52px;

    display:
        grid !important;

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

    align-items:
        center;

    gap:
        12px;

    padding:
        0
        4px !important;

    border-bottom:
        1px solid #eeeeee !important;

    background:
        transparent !important;

    color:
        #555555 !important;

    text-decoration:
        none !important;

    transition:
        color .2s ease,
        padding-left .2s ease;
}

.spade-account-nav__item a:hover,
.spade-account-nav__item.is-active a {
    padding-left:
        9px !important;

    color:
        #111111 !important;
}

.spade-account-nav__item.is-active a {
    font-weight:
        700;
}

.spade-account-nav__item--logout {
    margin-top:
        12px !important;
}

.spade-account-nav__item--logout a {
    border-bottom:
        0 !important;

    color:
        #777777 !important;
}

.spade-account-nav__icon {
    width:
        21px;

    height:
        21px;

    display:
        inline-flex;
}

.spade-account-nav__icon svg {
    width:
        100%;

    height:
        100%;

    fill:
        none;

    stroke:
        currentColor;

    stroke-width:
        1.45;

    stroke-linecap:
        round;

    stroke-linejoin:
        round;
}

.spade-account-nav__label {
    font-family:
        var(--spade-font-body, "Manrope", Arial, sans-serif);

    font-size:
        11px;

    font-weight:
        600;

    letter-spacing:
        .025em;
}


/* =========================================================
   ACCOUNT CONTENT
   ========================================================= */

.spade-account-page--logged-in
.woocommerce-MyAccount-content {
    float:
        none !important;

    width:
        100% !important;

    min-width:
        0;

    margin:
        0 !important;

    padding:
        0 !important;
}


/* Page heading */

.spade-account-page-head {
    max-width:
        760px;

    margin-bottom:
        clamp(34px, 4vw, 56px);
}

.spade-account-page-head__eyebrow,
.spade-account-section__eyebrow {
    margin:
        0
        0
        8px;

    color:
        #777777;

    font-family:
        var(--spade-font-body, "Manrope", Arial, sans-serif);

    font-size:
        9px;

    font-weight:
        700;

    letter-spacing:
        .16em;

    text-transform:
        uppercase;
}

.spade-account-page-head__title {
    margin:
        0;

    color:
        #111111;

    font-family:
        var(--spade-font-heading, "DM Serif Display", Georgia, serif);

    font-size:
        clamp(46px, 5vw, 72px);

    font-weight:
        400;

    line-height:
        .98;

    letter-spacing:
        -.03em;
}

.spade-account-page-head__intro {
    max-width:
        620px;

    margin:
        17px
        0
        0;

    color:
        #666666;

    font-family:
        var(--spade-font-body, "Manrope", Arial, sans-serif);

    font-size:
        12px;

    line-height:
        1.7;
}


/* =========================================================
   DASHBOARD CARDS
   ========================================================= */

.spade-account-dashboard__cards {
    display:
        grid;

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

    gap:
        10px;

    margin-bottom:
        clamp(50px, 6vw, 86px);
}

.spade-account-action-card {
    min-height:
        104px;

    display:
        grid;

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

    align-items:
        center;

    gap:
        16px;

    padding:
        18px
        20px;

    border:
        1px solid #e7e7e7;

    background:
        #ffffff;

    color:
        #111111;

    text-decoration:
        none !important;

    transition:
        border-color .2s ease,
        transform .2s ease;
}

.spade-account-action-card:hover {
    border-color:
        #111111;

    transform:
        translateY(-2px);
}

.spade-account-action-card__icon {
    width:
        29px;

    height:
        29px;

    display:
        inline-flex;
}

.spade-account-action-card__icon svg {
    width:
        100%;

    height:
        100%;

    fill:
        none;

    stroke:
        currentColor;

    stroke-width:
        1.25;

    stroke-linecap:
        round;

    stroke-linejoin:
        round;
}

.spade-account-action-card__copy strong {
    display:
        block;

    margin-bottom:
        5px;

    font-size:
        11px;

    font-weight:
        700;

    letter-spacing:
        .035em;

    text-transform:
        uppercase;
}

.spade-account-action-card__copy span {
    display:
        block;

    color:
        #777777;

    font-size:
        10px;

    line-height:
        1.5;
}

.spade-account-action-card__arrow {
    font-size:
        18px;
}


/* =========================================================
   ACCOUNT SECTIONS
   ========================================================= */

.spade-account-section {
    margin-top:
        clamp(48px, 6vw, 82px);
}

.spade-account-section__head {
    display:
        flex;

    align-items:
        flex-end;

    justify-content:
        space-between;

    gap:
        30px;

    margin-bottom:
        22px;

    padding-bottom:
        16px;

    border-bottom:
        1px solid #dddddd;
}

.spade-account-section__head h2 {
    margin:
        0;

    font-family:
        var(--spade-font-heading, "DM Serif Display", Georgia, serif);

    font-size:
        clamp(30px, 3vw, 42px);

    font-weight:
        400;
}

.spade-account-text-link {
    display:
        inline-flex;

    align-items:
        center;

    gap:
        7px;

    padding-bottom:
        3px;

    border-bottom:
        1px solid #111111;

    color:
        #111111;

    font-size:
        9px;

    font-weight:
        700;

    letter-spacing:
        .09em;

    text-decoration:
        none !important;

    text-transform:
        uppercase;
}


/* =========================================================
   ORDER CARDS
   ========================================================= */

.spade-account-order-list {
    display:
        grid;

    gap:
        10px;
}

.spade-account-order-card {
    min-height:
        154px;

    display:
        grid;

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

    border:
        1px solid #e5e5e5;

    background:
        #ffffff;

    overflow:
        hidden;
}

.spade-account-order-card__media {
    display:
        block;

    background:
        #f5f5f3;
}

.spade-account-order-card__image {
    display:
        block;

    width:
        100% !important;

    height:
        100% !important;

    object-fit:
        cover;
}

.spade-account-order-card__body {
    display:
        flex;

    flex-direction:
        column;

    padding:
        17px
        19px;
}

.spade-account-order-card__meta {
    display:
        flex;

    justify-content:
        space-between;

    gap:
        18px;

    margin-bottom:
        20px;

    color:
        #888888;

    font-size:
        8px;

    font-weight:
        700;

    letter-spacing:
        .1em;

    text-transform:
        uppercase;
}

.spade-account-order-card__main {
    display:
        flex;

    align-items:
        flex-end;

    justify-content:
        space-between;

    gap:
        24px;
}

.spade-account-order-card__status {
    display:
        block;

    font-size:
        13px;

    font-weight:
        700;
}

.spade-account-order-card__items {
    display:
        block;

    margin-top:
        5px;

    color:
        #777777;

    font-size:
        9px;
}

.spade-account-order-card__total {
    font-size:
        12px;

    font-weight:
        700;

    white-space:
        nowrap;
}

.spade-account-order-card__actions {
    display:
        flex;

    flex-wrap:
        wrap;

    gap:
        10px;
}

.spade-account-order-card__button {
    display:
        inline-flex;

    align-items:
        center;

    gap:
        8px;

    align-self:
        flex-start;

    margin-top:
        auto;

    padding-top:
        16px;

    color:
        #111111;

    font-size:
        9px;

    font-weight:
        700;

    letter-spacing:
        .09em;

    text-decoration:
        none !important;

    text-transform:
        uppercase;
}


/* =========================================================
   ADDRESS CARDS
   ========================================================= */

.spade-account-address-grid {
    display:
        grid;

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

    gap:
        10px;
}

.spade-account-address-card {
    min-height:
        180px;

    padding:
        22px;

    border:
        1px solid #e5e5e5;

    background:
        #ffffff;
}

.spade-account-address-card__head {
    display:
        flex;

    align-items:
        center;

    justify-content:
        space-between;

    gap:
        20px;

    margin-bottom:
        22px;
}

.spade-account-address-card__head strong {
    font-size:
        10px;

    font-weight:
        700;

    letter-spacing:
        .06em;

    text-transform:
        uppercase;
}

.spade-account-address-card__head a {
    color:
        #111111;

    font-size:
        9px;

    font-weight:
        700;

    text-decoration:
        underline;

    text-underline-offset:
        3px;
}

.spade-account-address-card address,
.spade-account-address-card p {
    margin:
        0;

    color:
        #666666;

    font-size:
        11px;

    font-style:
        normal;

    line-height:
        1.7;
}


/* =========================================================
   EMPTY STATE
   ========================================================= */

.spade-account-empty {
    display:
        flex;

    flex-direction:
        column;

    align-items:
        center;

    padding:
        clamp(46px, 7vw, 82px)
        20px;

    border:
        1px solid #e6e6e6;

    text-align:
        center;
}

.spade-account-empty__icon {
    width:
        36px;

    height:
        36px;

    margin-bottom:
        17px;
}

.spade-account-empty__icon svg {
    width:
        100%;

    height:
        100%;

    fill:
        none;

    stroke:
        #111111;

    stroke-width:
        1.25;
}

.spade-account-empty h3 {
    margin:
        0;

    font-family:
        var(--spade-font-heading, "DM Serif Display", Georgia, serif);

    font-size:
        30px;

    font-weight:
        400;
}

.spade-account-empty p {
    margin:
        10px
        0
        22px;

    color:
        #777777;

    font-size:
        11px;
}

.spade-account-primary-button {
    min-width:
        166px;

    min-height:
        46px;

    display:
        inline-flex;

    align-items:
        center;

    justify-content:
        center;

    padding:
        0
        20px;

    background:
        #111111;

    color:
        #ffffff !important;

    font-size:
        9px;

    font-weight:
        700;

    letter-spacing:
        .11em;

    text-decoration:
        none !important;

    text-transform:
        uppercase;
}


/* =========================================================
   DEFAULT WOOCOMMERCE FORM STYLING
   ========================================================= */

.spade-account-page .woocommerce form .form-row {
    margin-bottom:
        18px;
}

.spade-account-page .woocommerce form .form-row label {
    display:
        block;

    margin-bottom:
        7px;

    color:
        #555555;

    font-size:
        9px;

    font-weight:
        700;

    letter-spacing:
        .08em;

    text-transform:
        uppercase;
}

.spade-account-page .woocommerce input.input-text,
.spade-account-page .woocommerce textarea,
.spade-account-page .woocommerce select {
    width:
        100%;

    min-height:
        48px;

    padding:
        0
        13px;

    border:
        1px solid #d9d9d9 !important;

    border-radius:
        0 !important;

    background:
        #ffffff !important;

    color:
        #111111 !important;

    box-shadow:
        none !important;
}


/* =========================================================
   LOGIN / REGISTRATION
   ========================================================= */

.spade-account-page--guest .woocommerce {
    width:
        100%;

    margin:
        0 !important;

    padding:
        0 !important;
}

.spade-auth {
    width:
        100%;

    padding:
        clamp(58px, 7vw, 105px)
        clamp(18px, 4vw, 64px)
        100px;

    background:
        #ffffff;

    box-sizing:
        border-box;
}

.spade-auth__shell {
    width:
        min(1180px, 100%);

    margin:
        0
        auto;
}

.spade-auth__head {
    max-width:
        720px;

    margin-bottom:
        clamp(42px, 5vw, 68px);
}

.spade-auth__eyebrow {
    margin:
        0
        0
        9px;

    color:
        #777777;

    font-size:
        9px;

    font-weight:
        700;

    letter-spacing:
        .17em;

    text-transform:
        uppercase;
}

.spade-auth__head h1 {
    margin:
        0;

    font-family:
        var(--spade-font-heading, "DM Serif Display", Georgia, serif);

    font-size:
        clamp(52px, 6vw, 82px);

    font-weight:
        400;

    line-height:
        .95;

    letter-spacing:
        -.035em;
}

.spade-auth__head p:last-child {
    max-width:
        560px;

    margin:
        18px
        0
        0;

    color:
        #666666;

    font-size:
        12px;

    line-height:
        1.7;
}

.spade-auth__grid {
    display:
        grid;

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

    gap:
        12px;
}

.spade-auth__grid--single {
    grid-template-columns:
        minmax(0, 580px);
}

.spade-auth-panel {
    padding:
        clamp(26px, 3vw, 42px);

    border:
        1px solid #e2e2e2;

    background:
        #ffffff;
}

.spade-auth-panel--register {
    background:
        #fafafa;
}

.spade-auth-panel__head {
    display:
        flex;

    gap:
        18px;

    margin-bottom:
        30px;
}

.spade-auth-panel__number {
    width:
        30px;

    height:
        30px;

    display:
        inline-flex;

    align-items:
        center;

    justify-content:
        center;

    flex:
        0 0 30px;

    border:
        1px solid #111111;

    border-radius:
        50%;

    font-size:
        8px;

    font-weight:
        700;
}

.spade-auth-panel__head h2 {
    margin:
        0;

    font-family:
        var(--spade-font-heading, "DM Serif Display", Georgia, serif);

    font-size:
        34px;

    font-weight:
        400;
}

.spade-auth-panel__head p {
    margin:
        7px
        0
        0;

    color:
        #777777;

    font-size:
        10px;
}

.spade-auth-form {
    margin:
        0 !important;

    padding:
        0 !important;

    border:
        0 !important;
}

.spade-auth-field {
    margin:
        0
        0
        18px !important;
}

.spade-auth-field label {
    display:
        block;

    margin-bottom:
        7px;

    color:
        #555555;

    font-size:
        9px;

    font-weight:
        700;

    letter-spacing:
        .08em;

    text-transform:
        uppercase;
}

.spade-auth-field input {
    width:
        100%;

    height:
        50px;

    padding:
        0
        13px;

    border:
        1px solid #d8d8d8 !important;

    border-radius:
        0 !important;

    background:
        #ffffff !important;

    box-sizing:
        border-box;
}

.spade-password-field {
    position:
        relative;

    display:
        block;
}

.spade-password-field input {
    padding-right:
        66px !important;
}

.spade-password-toggle {
    position:
        absolute;

    top:
        50%;

    right:
        10px;

    transform:
        translateY(-50%);

    padding:
        6px;

    border:
        0;

    background:
        transparent;

    color:
        #555555;

    cursor:
        pointer;

    font-size:
        9px;

    font-weight:
        700;

    text-transform:
        uppercase;
}

.spade-auth-form__row {
    display:
        flex;

    align-items:
        center;

    justify-content:
        space-between;

    gap:
        18px;

    margin:
        2px
        0
        24px;
}

.spade-auth-check {
    display:
        inline-flex;

    align-items:
        center;

    gap:
        8px;

    color:
        #666666;

    font-size:
        10px;
}

.spade-auth-link {
    color:
        #111111;

    font-size:
        10px;

    font-weight:
        600;

    text-decoration:
        underline;

    text-underline-offset:
        3px;
}

.spade-auth-button {
    width:
        100%;

    min-height:
        50px;

    display:
        flex !important;

    align-items:
        center !important;

    justify-content:
        center !important;

    border:
        1px solid #111111 !important;

    border-radius:
        0 !important;

    background:
        #111111 !important;

    color:
        #ffffff !important;

    font-size:
        9px !important;

    font-weight:
        700 !important;

    letter-spacing:
        .12em !important;

    text-transform:
        uppercase;
}

.spade-auth-button--outline {
    background:
        #ffffff !important;

    color:
        #111111 !important;
}

.spade-auth-note {
    padding:
        16px;

    background:
        #ffffff;

    color:
        #666666;

    font-size:
        10px;

    line-height:
        1.6;
}


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

@media (max-width: 900px) {

    .spade-account-page--logged-in
    .woocommerce {
        display:
            block;

        padding:
            28px
            14px
            64px;
    }


    .spade-account-nav {
        position:
            static;

        width:
            100%;

        margin-bottom:
            34px;
    }


    .spade-account-nav__list {
        display:
            flex !important;

        width:
            calc(100% + 28px);

        gap:
            7px;

        margin:
            0
            -14px !important;

        padding:
            14px
            14px
            3px !important;

        overflow-x:
            auto;

        scrollbar-width:
            none;
    }


    .spade-account-nav__list::-webkit-scrollbar {
        display:
            none;
    }


    .spade-account-nav__item {
        flex:
            0 0 auto;
    }


    .spade-account-nav__item a {
        display:
            flex !important;

        min-height:
            42px;

        gap:
            7px;

        padding:
            0
            12px !important;

        border:
            1px solid #dfdfdf !important;

        white-space:
            nowrap;
    }


    .spade-account-nav__item.is-active a {
        background:
            #111111 !important;

        border-color:
            #111111 !important;

        color:
            #ffffff !important;
    }


    .spade-account-nav__arrow {
        display:
            none;
    }

}


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

@media (max-width: 680px) {

    .spade-account-page-head__title {
        font-size:
            44px;
    }


    .spade-account-dashboard__cards {
        grid-template-columns:
            1fr;

        gap:
            8px;
    }


    .spade-account-action-card {
        min-height:
            86px;

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

        padding:
            14px;
    }


    .spade-account-order-card {
        grid-template-columns:
            92px
            minmax(0, 1fr);

        min-height:
            142px;
    }


    .spade-account-order-card__body {
        padding:
            13px;
    }


    .spade-account-order-card__meta {
        display:
            block;

        margin-bottom:
            13px;
    }


    .spade-account-order-card__meta span {
        display:
            block;

        margin-bottom:
            4px;
    }


    .spade-account-order-card__main {
        display:
            block;
    }


    .spade-account-order-card__total {
        display:
            block;

        margin-top:
            9px;
    }


    .spade-account-address-grid {
        grid-template-columns:
            1fr;
    }


    .spade-auth {
        padding:
            44px
            14px
            70px;
    }


    .spade-auth__head h1 {
        font-size:
            52px;
    }


    .spade-auth__grid,
    .spade-auth__grid--single {
        grid-template-columns:
            1fr;
    }


    .spade-auth-panel {
        padding:
            24px
            16px;
    }


    .spade-auth-panel__head h2 {
        font-size:
            30px;
    }


    .spade-auth-form__row {
        align-items:
            flex-start;

        flex-direction:
            column;

        gap:
            10px;
    }

}