/* ========================================================================
   RFL — Global Sticky Footer CTA
   Fixed bottom bar, hidden until past the hero; collapsible to a pill.
   ======================================================================== */

.rfl-sticky{
    position:fixed;
    left:50%;
    bottom:max(24px, env(safe-area-inset-bottom, 24px));
    transform:translate(-50%, 160%);
    z-index:9000;
    width:min(960px, calc(100% - 28px));
    pointer-events:none;
    opacity:0;
    transition:transform .55s var(--rfl-ease, cubic-bezier(.22,1,.36,1)),
               opacity   .35s var(--rfl-ease, cubic-bezier(.22,1,.36,1));
    font-family:var(--rfl-sans, "Inter", "Helvetica Neue", Arial, sans-serif);
}

.rfl-sticky.is-visible{
    transform:translate(-50%, 0);
    opacity:1;
    pointer-events:auto;
}

.rfl-sticky__inner{
    display:flex;
    align-items:center;
    gap:18px;
    padding:12px 14px 12px 18px;
    background:rgba(14, 14, 14, 0.97);
    color:var(--rfl-paper, #f4ede1);
    border:1px solid rgba(200, 163, 90, 0.28);
    border-radius:999px;
    box-shadow:0 22px 60px -20px rgba(0,0,0,.7),
               0 2px 0 rgba(255,255,255,.03) inset;
    backdrop-filter:blur(10px);
    transition:opacity .35s var(--rfl-ease, cubic-bezier(.22,1,.36,1)),
               transform .45s var(--rfl-ease, cubic-bezier(.22,1,.36,1));
}

/* -------- Brand mark -------- */
.rfl-sticky__brand{
    flex-shrink:0;
    display:grid;
    place-items:center;
    width:46px; height:46px;
    border-radius:50%;
    background:var(--rfl-gold, #c8a35a);
    overflow:hidden;
    transition:transform .35s var(--rfl-ease, cubic-bezier(.22,1,.36,1));
}
.rfl-sticky__brand:hover{transform:rotate(-6deg) scale(1.05);}
.rfl-sticky__brand img{
    display:block;
    width:78%; height:auto;
    filter:invert(1) brightness(0);
    transform:translateY(0);
}

/* -------- Text block -------- */
.rfl-sticky__meta{
    display:flex; flex-direction:column; gap:2px;
    line-height:1.2;
    margin-right:auto;
    min-width:0;
}
.rfl-sticky__eyebrow{
    font-family:var(--rfl-serif, "Cormorant Garamond", serif);
    font-size:17px;
    color:var(--rfl-paper, #f4ede1);
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}
.rfl-sticky__sub{
    font-size:10px;
    letter-spacing:.22em;
    text-transform:uppercase;
    color:var(--rfl-gold, #c8a35a);
    font-weight:500;
}

/* -------- Actions -------- */
.rfl-sticky__actions{
    display:flex; align-items:center; gap:8px;
    flex-shrink:0;
}

.rfl-sticky__btn{
    position:relative;
    display:inline-flex;
    align-items:center;
    gap:10px;
    padding:11px 18px;
    border-radius:999px;
    text-decoration:none;
    font-size:12px;
    letter-spacing:.16em;
    text-transform:uppercase;
    font-weight:500;
    line-height:1;
    border:1px solid transparent;
    cursor:pointer;
    transition:all .35s var(--rfl-ease, cubic-bezier(.22,1,.36,1));
    white-space:nowrap;
}
.rfl-sticky__btn svg{
    width:16px; height:16px;
    flex-shrink:0;
    stroke:currentColor;
}
.rfl-sticky__btn-arrow{
    font-size:14px;
    transition:transform .35s var(--rfl-ease, cubic-bezier(.22,1,.36,1));
}
.rfl-sticky__btn:hover .rfl-sticky__btn-arrow{transform:translateX(3px);}

.rfl-sticky__btn--phone{
    color:var(--rfl-paper, #f4ede1);
    background:transparent;
    border-color:rgba(255,255,255,.22);
}
.rfl-sticky__btn--phone:hover{
    background:var(--rfl-paper, #f4ede1);
    color:var(--rfl-ink, #111);
    border-color:var(--rfl-paper, #f4ede1);
}

.rfl-sticky__btn--reserve{
    color:var(--rfl-ink, #111);
    background:var(--rfl-gold, #c8a35a);
    border-color:var(--rfl-gold, #c8a35a);
}
.rfl-sticky__btn--reserve:hover{
    background:var(--rfl-paper, #f4ede1);
    border-color:var(--rfl-paper, #f4ede1);
}

.rfl-sticky__btn--whatsapp{
    color:#fff;
    background:#25D366;
    border-color:#25D366;
    padding:11px 14px;
}
.rfl-sticky__btn--whatsapp svg{width:18px; height:18px;}
.rfl-sticky__btn--whatsapp:hover{
    background:#1ebd5b;
    border-color:#1ebd5b;
}

/* -------- Toggle (collapse) button -------- */
.rfl-sticky__toggle{
    flex-shrink:0;
    width:34px; height:34px;
    display:grid; place-items:center;
    background:transparent;
    border:1px solid rgba(255,255,255,.18);
    border-radius:50%;
    color:var(--rfl-paper, #f4ede1);
    cursor:pointer;
    transition:all .35s var(--rfl-ease, cubic-bezier(.22,1,.36,1));
    padding:0;
}
.rfl-sticky__toggle:hover{
    background:rgba(255,255,255,.08);
    border-color:rgba(255,255,255,.4);
}
.rfl-sticky__toggle svg{
    width:14px; height:14px;
    transition:transform .4s var(--rfl-ease, cubic-bezier(.22,1,.36,1));
}

/* -------- Re-open pill (shown when collapsed) -------- */
.rfl-sticky__reopen{
    position:absolute;
    right:0;
    bottom:0;
    width:56px; height:56px;
    display:grid; place-items:center;
    background:var(--rfl-gold, #c8a35a);
    color:var(--rfl-ink, #111);
    border:none;
    border-radius:50%;
    cursor:pointer;
    opacity:0;
    transform:scale(.4);
    pointer-events:none;
    transition:all .55s var(--rfl-ease, cubic-bezier(.22,1,.36,1));
    box-shadow:0 18px 40px -12px rgba(0,0,0,.55);
}
.rfl-sticky__reopen svg{width:22px; height:22px;}
.rfl-sticky__reopen-pulse{
    position:absolute; inset:-4px;
    border-radius:50%;
    border:1px solid var(--rfl-gold, #c8a35a);
    opacity:.7;
    animation:rfl-sticky-pulse 2.2s ease-out infinite;
}
@keyframes rfl-sticky-pulse{
    0%{transform:scale(.85); opacity:.7;}
    100%{transform:scale(1.4); opacity:0;}
}

/* -------- Collapsed state -------- */
.rfl-sticky.is-collapsed .rfl-sticky__inner{
    opacity:0;
    transform:scale(.6);
    pointer-events:none;
}
.rfl-sticky.is-collapsed .rfl-sticky__reopen{
    opacity:1;
    transform:scale(1);
    pointer-events:auto;
}
.rfl-sticky.is-collapsed{
    width:auto;
    bottom:24px;
    left:auto;
    right:24px;
    transform:none;
}
.rfl-sticky.is-collapsed.is-visible{
    transform:none;
}

/* -------- Responsive -------- */
@media (max-width:780px){
    .rfl-sticky{
        bottom:max(14px, env(safe-area-inset-bottom, 14px));
        width:min(560px, calc(100% - 20px));
    }
    .rfl-sticky__inner{
        gap:10px;
        padding:10px 12px;
    }
    .rfl-sticky__meta{display:none;}
    .rfl-sticky__brand{width:42px; height:42px;}
    .rfl-sticky__btn-label{display:none;}
    .rfl-sticky__btn{
        padding:11px;
        width:42px; height:42px;
        justify-content:center;
    }
    .rfl-sticky__btn--reserve{
        width:auto;
        padding:0 18px;
    }
    .rfl-sticky__btn--reserve .rfl-sticky__btn-label{
        display:inline;
        font-size:11px;
    }
    .rfl-sticky__btn-arrow{display:none;}
    .rfl-sticky__toggle{width:38px; height:38px;}
    .rfl-sticky.is-collapsed{
        right:14px; bottom:14px;
    }
}

@media (max-width:420px){
    .rfl-sticky__btn--reserve .rfl-sticky__btn-label{
        font-size:10px;
        letter-spacing:.12em;
    }
}

/* Respect users with motion sensitivity */
@media (prefers-reduced-motion:reduce){
    .rfl-sticky,
    .rfl-sticky__inner,
    .rfl-sticky__reopen,
    .rfl-sticky__btn,
    .rfl-sticky__btn-arrow,
    .rfl-sticky__toggle svg{
        transition:none !important;
        animation:none !important;
    }
}
