/* ==========================================================================
   GiuFé Mini Cart — front-end styles
   Colours are injected as CSS variables by the plugin (with fallbacks).
   ========================================================================== */
:root{
    --gfmc-gold: #c0ab89;
    --gfmc-gold-deep: #9a7b56;
    --gfmc-ink: #0c0a0d;
    --gfmc-cream: #f1e9da;
}

/* --------------------------------------------------------------------------
   1. DESKTOP — INLINE TRIGGER
   -------------------------------------------------------------------------- */
.gfmc-wrap{ position:relative; display:inline-flex; align-items:center; }

/* When floating (no slot found), pin top-right */
.gfmc-wrap.gfmc-floating{
    position:fixed; top:22px; right:26px; z-index:999997;
}

/* Auto-inline placement: cart inserted before the language switcher.
   Force the parent flex container into a row so they sit side by side. */
.gfmc-wrap.gfmc-inline{ order:0; }
.elementor-element-ffda58c:has(.gfmc-wrap.gfmc-inline),
.e-con:has(> .gfmc-wrap.gfmc-inline){
    display:flex !important;
    flex-direction:row !important;
    flex-wrap:nowrap !important;
    align-items:center !important;
    gap:0 !important;
}
.gfmc-wrap.gfmc-inline + .elementor-widget-gted_language_switcher{ order:1; }

.gfmc-trigger{
    position:relative; display:inline-flex; align-items:center; justify-content:center;
    gap:7px; background:none!important; border:none!important; cursor:pointer;
    padding:4px 0!important; color:#ffffff!important;
    font-family:'Jost',sans-serif!important; font-size:11.5px!important;
    font-weight:500!important; letter-spacing:.06em!important; text-transform:uppercase!important;
    transition:color .3s ease!important; margin-right:18px;
}
.gfmc-wrap.gfmc-floating .gfmc-trigger{ margin-right:0; }
.gfmc-trigger:hover{ color:var(--gfmc-gold)!important; }

.gfmc-icon{ width:19px; height:19px; display:block; }
.gfmc-icon path,.gfmc-icon circle{ stroke:currentColor; stroke-width:1.4; fill:none; }

.gfmc-count{
    position:absolute; top:-6px; right:-9px; min-width:15px; height:15px; padding:0 3px;
    display:flex; align-items:center; justify-content:center;
    background:linear-gradient(135deg,var(--gfmc-gold),var(--gfmc-gold-deep));
    color:var(--gfmc-ink); font-family:'Jost',sans-serif; font-size:9px; font-weight:600;
    line-height:1; border-radius:999px; box-shadow:0 2px 8px rgba(192,171,137,.4);
    transform:scale(0); transition:transform .35s cubic-bezier(.34,1.56,.64,1);
}
.gfmc-wrap.has-items .gfmc-count{ transform:scale(1); }
.gfmc-count.gfmc-bump{ animation:gfmcBump .5s cubic-bezier(.34,1.56,.64,1); }
@keyframes gfmcBump{ 0%{transform:scale(1);} 40%{transform:scale(1.4);} 100%{transform:scale(1);} }

/* --------------------------------------------------------------------------
   2. DRAWER (shared)
   -------------------------------------------------------------------------- */
.gfmc-drawer{
    position:fixed; top:0; right:0; width:380px; max-width:90vw; height:100vh;
    background:rgba(12,10,13,.98); backdrop-filter:blur(24px); -webkit-backdrop-filter:blur(24px);
    border-left:1px solid rgba(192,171,137,.2); box-shadow:-20px 0 60px rgba(0,0,0,.6);
    z-index:1000000; display:flex; flex-direction:column;
    transform:translateX(102%); transition:transform .5s cubic-bezier(.5,0,.15,1); box-sizing:border-box;
}
.gfmc-drawer.is-open{ transform:translateX(0); }
/* Left-side variant */
.gfmc-drawer.gfmc-left{ right:auto; left:0; border-left:none; border-right:1px solid rgba(192,171,137,.2); box-shadow:20px 0 60px rgba(0,0,0,.6); transform:translateX(-102%); }
.gfmc-drawer.gfmc-left.is-open{ transform:translateX(0); }

.gfmc-overlay{
    position:fixed; inset:0; background:rgba(0,0,0,.55);
    backdrop-filter:blur(2px); -webkit-backdrop-filter:blur(2px); z-index:999999;
    opacity:0; visibility:hidden; transition:opacity .4s ease, visibility .4s ease;
}
.gfmc-overlay.is-open{ opacity:1; visibility:visible; }

.gfmc-head{
    display:flex; align-items:center; justify-content:space-between;
    padding:26px 28px 20px; border-bottom:1px solid rgba(255,255,255,.06); flex-shrink:0;
}
.gfmc-title{
    font-family:'Fraunces',serif; font-size:20px; font-weight:500; color:var(--gfmc-cream);
    letter-spacing:.01em; margin:0; display:flex; align-items:baseline; gap:9px;
}
.gfmc-title small{
    font-family:'Jost',sans-serif; font-size:10.5px; font-weight:400; letter-spacing:.12em;
    text-transform:uppercase; color:var(--gfmc-gold);
}
.gfmc-close{
    width:38px; height:38px; display:flex; align-items:center; justify-content:center;
    background:rgba(192,171,137,.05); border:1px solid rgba(192,171,137,.28); border-radius:50%;
    color:var(--gfmc-gold); cursor:pointer; font-family:'Jost',sans-serif; font-size:15px;
    font-weight:300; line-height:1; transition:all .4s cubic-bezier(.4,0,.2,1);
}
.gfmc-close:hover{ background:rgba(192,171,137,.15); transform:rotate(90deg); }

.gfmc-body{ flex:1 1 auto; overflow-y:auto; padding:8px 28px; }
.gfmc-body::-webkit-scrollbar{ width:4px; }
.gfmc-body::-webkit-scrollbar-thumb{ background:rgba(192,171,137,.3); border-radius:4px; }

.gfmc-item{
    display:flex; align-items:center; gap:12px; padding:14px 0;
    border-bottom:1px solid rgba(255,255,255,.05);
    opacity:0; transform:translateY(12px); animation:gfmcItemIn .5s forwards;
    overflow:hidden;
    transition:opacity .3s ease, transform .3s ease, max-height .3s ease,
               padding .3s ease, border-color .3s ease;
}
@keyframes gfmcItemIn{ to{ opacity:1; transform:translateY(0);} }
/* Re-renders after removal: appear instantly, no replayed stagger */
.gfmc-item.gfmc-instant{ animation:none; opacity:1; transform:none; }
/* Smooth exit when removing */
.gfmc-item.gfmc-out{
    opacity:0 !important;
    transform:translateX(24px) !important;
    max-height:0 !important;
    padding-top:0 !important; padding-bottom:0 !important;
    border-color:transparent !important;
}
.gfmc-item.is-removing{ pointer-events:none; }
.gfmc-item-img{
    width:44px; height:52px; object-fit:cover; border-radius:3px; flex-shrink:0;
    background:#1a1719; border:1px solid rgba(192,171,137,.12);
}
.gfmc-item-info{ flex:1 1 auto; min-width:0; display:flex; flex-direction:column; }
.gfmc-item-name{
    font-family:'Fraunces',serif; font-size:13px; color:var(--gfmc-cream);
    line-height:1.3; margin:0 0 2px;
    display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.gfmc-item-name a{ color:inherit; text-decoration:none; }
.gfmc-item-meta{ font-family:'Jost',sans-serif; font-size:10.5px; letter-spacing:.04em; color:#a5a3a6; }
.gfmc-item-bottom{ display:flex; align-items:center; justify-content:space-between; margin-top:8px; }
.gfmc-qty{ display:inline-flex; align-items:center; border:1px solid rgba(192,171,137,.25); border-radius:4px; overflow:hidden; }
.gfmc-qty button{ width:22px; height:22px; background:none; border:none; color:var(--gfmc-gold); cursor:pointer; font-family:'Jost',sans-serif; font-size:13px; line-height:1; transition:background .25s ease; }
.gfmc-qty button:hover{ background:rgba(192,171,137,.1); }
.gfmc-qty button:disabled{ opacity:.35; cursor:not-allowed; }
.gfmc-qty span{ min-width:26px; text-align:center; font-family:'Jost',sans-serif; font-size:11.5px; color:var(--gfmc-cream); }
.gfmc-item-price{ font-family:'Jost',sans-serif; font-size:12.5px; font-weight:500; color:var(--gfmc-gold); letter-spacing:.02em; }
.gfmc-remove{
    background:none; border:none; cursor:pointer; color:#6b6969; font-family:'Jost',sans-serif;
    font-size:9.5px; letter-spacing:.08em; text-transform:uppercase; padding:3px 0; margin-top:4px;
    text-align:left; transition:color .25s ease; align-self:flex-start;
}
.gfmc-remove:hover{ color:#c98b8b; }

.gfmc-empty{ display:none; flex-direction:column; align-items:center; justify-content:center; text-align:center; height:100%; padding:40px; gap:16px; }
.gfmc-drawer.is-empty .gfmc-empty{ display:flex; }
.gfmc-empty svg{ width:44px; height:44px; color:rgba(192,171,137,.4); }
.gfmc-empty p{ font-family:'Fraunces',serif; font-size:17px; color:var(--gfmc-cream); margin:0; }
.gfmc-empty small{ font-family:'Jost',sans-serif; font-size:11.5px; letter-spacing:.05em; color:#a5a3a6; }

.gfmc-foot{ flex-shrink:0; padding:22px 28px 28px; border-top:1px solid rgba(255,255,255,.08); background:rgba(0,0,0,.2); }
.gfmc-drawer.is-empty .gfmc-foot{ display:none; }
.gfmc-subtotal{ display:flex; align-items:baseline; justify-content:space-between; margin-bottom:18px; }
.gfmc-subtotal-label{ font-family:'Jost',sans-serif; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:#a5a3a6; }
.gfmc-subtotal-value{ font-family:'Fraunces',serif; font-size:22px; color:var(--gfmc-cream); }
.gfmc-actions{ display:flex; flex-direction:column; gap:10px; }
.gfmc-btn{
    display:flex; align-items:center; justify-content:center; padding:14px; border-radius:5px;
    font-family:'Jost',sans-serif; font-size:11.5px; font-weight:500; letter-spacing:.1em;
    text-transform:uppercase; text-decoration:none; cursor:pointer; transition:all .35s ease;
    border:1px solid transparent;
}
.gfmc-btn-primary{ background:linear-gradient(135deg,var(--gfmc-gold),var(--gfmc-gold-deep)); color:var(--gfmc-ink)!important; }
.gfmc-btn-primary:hover{ filter:brightness(1.1); box-shadow:0 8px 24px rgba(192,171,137,.3); }
.gfmc-btn-ghost{ background:none; color:var(--gfmc-cream)!important; border-color:rgba(192,171,137,.3); }
.gfmc-btn-ghost:hover{ background:rgba(192,171,137,.08); border-color:rgba(192,171,137,.5); }

/* Loading state */
.gfmc-drawer.is-loading .gfmc-body{ opacity:.4; pointer-events:none; }

/* --------------------------------------------------------------------------
   3. MOBILE — FLOATING BUTTON
   -------------------------------------------------------------------------- */
.gfmc-fab{
    display:none; position:fixed; bottom:22px; right:22px; width:58px; height:58px;
    align-items:center; justify-content:center;
    background:linear-gradient(135deg,var(--gfmc-gold),var(--gfmc-gold-deep));
    border:none; border-radius:50%;
    box-shadow:0 10px 30px rgba(0,0,0,.45),0 0 0 6px rgba(192,171,137,.08);
    cursor:pointer; z-index:999998; color:var(--gfmc-ink);
    transform:scale(0) translateY(20px); opacity:0;
    animation:gfmcFabIn .6s .3s cubic-bezier(.34,1.56,.64,1) forwards;
}
@keyframes gfmcFabIn{ to{ transform:scale(1) translateY(0); opacity:1; } }
.gfmc-fab::before{
    content:''; position:absolute; inset:-6px; border-radius:50%;
    background:rgba(192,171,137,.35); z-index:-1; animation:gfmcPulse 2.4s ease-out infinite;
}
@keyframes gfmcPulse{ 0%{transform:scale(1);opacity:.7;} 100%{transform:scale(1.5);opacity:0;} }
.gfmc-fab .gfmc-icon{ width:24px; height:24px; }
.gfmc-fab .gfmc-icon path,.gfmc-fab .gfmc-icon circle{ stroke:var(--gfmc-ink); stroke-width:1.6; }
.gfmc-fab-count{
    position:absolute; top:-3px; right:-3px; min-width:20px; height:20px; padding:0 5px;
    display:flex; align-items:center; justify-content:center; background:var(--gfmc-ink);
    color:var(--gfmc-gold); font-family:'Jost',sans-serif; font-size:10px; font-weight:600;
    line-height:1; border-radius:999px; border:1.5px solid var(--gfmc-gold);
    transform:scale(0); transition:transform .35s cubic-bezier(.34,1.56,.64,1);
}
.gfmc-fab.has-items .gfmc-fab-count{ transform:scale(1); }
.gfmc-fab-count.gfmc-bump{ animation:gfmcBump .5s cubic-bezier(.34,1.56,.64,1); }

/* Left-side FAB */
.gfmc-fab.gfmc-left{ right:auto; left:22px; }

/* Toggle desktop / mobile */
@media (max-width:1024px){
    .gfmc-wrap{ display:none!important; }
    .gfmc-fab{ display:flex!important; }
    .gfmc-drawer{ width:100%; max-width:100%; border-left:none; }
    .gfmc-drawer.gfmc-left{ border-right:none; }
}
