:root {
    --fnsc-navy:#111b26;
    --fnsc-navy-2:#17212c;
    --fnsc-navy-3:#1c2732;
    --fnsc-gold:#c9a461;
    --fnsc-gold-light:#dfc487;
    --fnsc-button:#fcda9a;
    --fnsc-text:#d9d9d6;
    --fnsc-muted:#aeb3b8;
    --fnsc-white:#ffffff;
    --fnsc-border:rgba(201,164,97,.54);
}

.fnsc,
.fnsc * { box-sizing:border-box; }

.fnsc {
    font-family:"Montserrat","Helvetica Neue",Arial,sans-serif;
}

.fnsc-floating-button {
    position:fixed!important;
    right:18px!important;
    bottom:166px!important;
    z-index:99996!important;
    width:48px!important;
    height:48px!important;
    min-width:48px!important;
    min-height:48px!important;
    margin:0!important;
    padding:0!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    border:1px solid var(--fnsc-border)!important;
    border-radius:999px!important;
    background:var(--fnsc-button)!important;
    color:#161d27!important;
    box-shadow:0 12px 30px rgba(0,0,0,.24)!important;
    cursor:pointer!important;
    transition:transform .25s ease, box-shadow .25s ease!important;
}

.fnsc-floating-button:hover {
    transform:translateY(-2px)!important;
    box-shadow:0 16px 34px rgba(0,0,0,.3)!important;
}

.fnsc-floating-icon {
    width:22px;
    height:22px;
    display:block;
}

.fnsc-floating-icon svg {
    width:100%;
    height:100%;
    display:block;
    fill:currentColor;
}

.fnsc-floating-count {
    position:absolute;
    top:-6px;
    right:-5px;
    min-width:23px;
    height:23px;
    padding:0 5px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:999px;
    background:var(--fnsc-navy);
    color:var(--fnsc-gold-light);
    border:1px solid var(--fnsc-gold);
    font-size:11px;
    font-weight:700;
    line-height:1;
}

.fnsc-overlay {
    position:fixed;
    inset:0;
    z-index:99997;
    background:rgba(2,8,14,.68);
    opacity:0;
    visibility:hidden;
    transition:opacity .3s ease, visibility .3s ease;
    backdrop-filter:blur(2px);
}

.fnsc-drawer {
    position:fixed;
    top:0;
    right:0;
    z-index:99998;
    width:min(450px,94vw);
    height:100dvh;
    display:flex;
    flex-direction:column;
    background:var(--fnsc-navy);
    color:var(--fnsc-text);
    border-left:1px solid rgba(201,164,97,.5);
    box-shadow:-18px 0 50px rgba(0,0,0,.28);
    transform:translateX(102%);
    visibility:hidden;
    transition:transform .34s cubic-bezier(.22,.61,.36,1), visibility .34s ease;
    overflow:hidden;
}

.fnsc.is-open .fnsc-overlay {
    opacity:1;
    visibility:visible;
}

.fnsc.is-open .fnsc-drawer {
    transform:translateX(0);
    visibility:visible;
}

body.fnsc-lock { overflow:hidden!important; }

.fnsc-drawer-header {
    flex:0 0 auto;
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:24px;
    padding:30px 28px 24px;
    border-bottom:1px solid rgba(255,255,255,.08);
}

.fnsc-kicker {
    margin:0 0 4px;
    color:var(--fnsc-gold);
    font-size:11px;
    font-weight:600;
    letter-spacing:.16em;
    text-transform:uppercase;
}

.fnsc-drawer-header h2 {
    margin:0!important;
    color:var(--fnsc-white)!important;
    font-family:"Cormorant Garamond",Georgia,"Times New Roman",serif!important;
    font-size:34px!important;
    font-weight:500!important;
    line-height:1.05!important;
}

.fnsc-close,
.fnsc-remove {
    appearance:none;
    border:0!important;
    background:transparent!important;
    color:var(--fnsc-gold-light)!important;
    cursor:pointer!important;
}

.fnsc-close {
    width:38px!important;
    height:38px!important;
    min-width:38px!important;
    padding:0!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    border:1px solid rgba(201,164,97,.45)!important;
    border-radius:999px!important;
    font-size:26px!important;
    line-height:1!important;
}

.fnsc-cart-body {
    flex:1 1 auto;
    min-height:0;
    overflow-y:auto;
    scrollbar-width:thin;
    scrollbar-color:rgba(201,164,97,.65) transparent;
}

.fnsc-items { padding:0 28px; }

.fnsc-item {
    display:grid;
    grid-template-columns:82px minmax(0,1fr);
    gap:17px;
    padding:22px 0;
    border-bottom:1px solid rgba(255,255,255,.075);
}

.fnsc-item-image {
    width:82px;
    height:82px;
    border:1px solid rgba(201,164,97,.35);
    border-radius:14px;
    overflow:hidden;
    background:var(--fnsc-navy-2);
}

.fnsc-item-image img {
    width:100%!important;
    height:100%!important;
    display:block!important;
    object-fit:cover!important;
    margin:0!important;
}

.fnsc-item-main { min-width:0; }

.fnsc-item-topline {
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
}

.fnsc-item-topline h3 {
    margin:0 0 4px!important;
    color:var(--fnsc-white)!important;
    font-family:"Cormorant Garamond",Georgia,"Times New Roman",serif!important;
    font-size:21px!important;
    font-weight:500!important;
    line-height:1.15!important;
}

.fnsc-remove {
    flex:0 0 24px;
    width:24px!important;
    height:24px!important;
    min-width:24px!important;
    padding:0!important;
    font-size:21px!important;
    line-height:1!important;
}

.fnsc-item-sku {
    margin-bottom:12px;
    color:var(--fnsc-muted);
    font-size:11px;
    letter-spacing:.04em;
}

.fnsc-item-bottom {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
}

.fnsc-mini-qty {
    height:34px;
    display:inline-grid;
    grid-template-columns:32px 36px 32px;
    align-items:center;
    border:1px solid rgba(201,164,97,.65);
    border-radius:999px;
    overflow:hidden;
}

.fnsc-mini-qty button,
.fnsc-mini-qty input {
    width:100%!important;
    height:100%!important;
    min-width:0!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    color:var(--fnsc-white)!important;
    box-shadow:none!important;
    text-align:center!important;
    font-family:"Montserrat","Helvetica Neue",Arial,sans-serif!important;
    font-size:12px!important;
    line-height:1!important;
}

.fnsc-mini-qty button { cursor:pointer!important; }
.fnsc-mini-qty input { appearance:textfield; -moz-appearance:textfield; }
.fnsc-mini-qty input::-webkit-outer-spin-button,
.fnsc-mini-qty input::-webkit-inner-spin-button { -webkit-appearance:none; margin:0; }

.fnsc-item-price {
    color:var(--fnsc-gold-light);
    font-family:"Cormorant Garamond",Georgia,"Times New Roman",serif;
    font-size:20px;
    font-weight:600;
    white-space:nowrap;
}

.fnsc-summary {
    margin-top:auto;
    padding:24px 28px 30px;
    border-top:1px solid rgba(201,164,97,.35);
    background:rgba(8,20,30,.38);
}

.fnsc-summary-row {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    margin-bottom:9px;
    color:var(--fnsc-white);
    font-size:15px;
}

.fnsc-summary-row strong {
    color:var(--fnsc-gold-light);
    font-family:"Cormorant Garamond",Georgia,"Times New Roman",serif;
    font-size:24px;
    font-weight:600;
}

.fnsc-summary-note {
    margin:0 0 20px!important;
    color:var(--fnsc-muted)!important;
    font-size:11px!important;
    line-height:1.6!important;
}

.fnsc-actions {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
}

.fnsc-actions a {
    min-height:48px;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:0 16px;
    border-radius:999px;
    font-family:"Montserrat","Helvetica Neue",Arial,sans-serif;
    font-size:11px;
    font-weight:600;
    letter-spacing:.12em;
    text-transform:uppercase;
    text-decoration:none!important;
}

.fnsc-view-cart {
    border:1px solid rgba(201,164,97,.65);
    color:var(--fnsc-gold-light)!important;
    background:transparent!important;
}

.fnsc-checkout {
    border:1px solid var(--fnsc-button);
    color:#161d27!important;
    background:var(--fnsc-button)!important;
}

.fnsc-empty {
    min-height:55vh;
    padding:70px 34px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
}

.fnsc-empty-icon {
    width:54px;
    height:54px;
    margin-bottom:18px;
    color:var(--fnsc-gold);
}

.fnsc-empty-icon svg { width:100%; height:100%; fill:currentColor; }

.fnsc-empty h3 {
    margin:0 0 9px!important;
    color:var(--fnsc-white)!important;
    font-family:"Cormorant Garamond",Georgia,"Times New Roman",serif!important;
    font-size:28px!important;
    font-weight:500!important;
}

.fnsc-empty p {
    max-width:290px;
    margin:0!important;
    color:var(--fnsc-muted)!important;
    font-size:13px!important;
    line-height:1.7!important;
}

.fnsc.is-loading .fnsc-cart-body { opacity:.55; pointer-events:none; }

@media (max-width:700px) {
    .fnsc-floating-button {
        right:16px!important;
        bottom:154px!important;
        width:60px!important;
        height:60px!important;
        min-width:60px!important;
        min-height:60px!important;
    }

    .fnsc-drawer {
        width:100vw;
        max-width:100vw;
        border-left:0;
    }

    .fnsc-drawer-header { padding:24px 18px 19px; }
    .fnsc-drawer-header h2 { font-size:31px!important; }
    .fnsc-items { padding:0 18px; }
    .fnsc-item { grid-template-columns:74px minmax(0,1fr); gap:14px; }
    .fnsc-item-image { width:74px; height:74px; }
    .fnsc-item-topline h3 { font-size:19px!important; }
    .fnsc-summary { padding:20px 18px 24px; }
}

@media (max-width:390px) {
    .fnsc-actions { grid-template-columns:1fr; }
    .fnsc-item-bottom { align-items:flex-start; flex-direction:column; }
}

@media (prefers-reduced-motion:reduce) {
    .fnsc *, .fnsc *::before, .fnsc *::after { transition:none!important; animation:none!important; }
}

/* The floating side cart replaces WooCommerce's inline "View cart" link
   that is normally inserted beside an AJAX Add button. */
a.added_to_cart.wc-forward,
.added_to_cart.wc-forward {
    display:none!important;
}
