/* =====================================================================
   FIREFLY PATTAYA — backend-powered UI layer
   Nav dropdowns · section tabs · booking wizard · calendar · profile · Bee chat
   Sits on top of the original theme (style.css / pro-upgrade.css)
   ===================================================================== */
:root{
  --ff-gold:#d4af37; --ff-gold-2:#f4c430; --ff-ink:#060907; --ff-card:#0e1510; --ff-card-2:#121c16;
  --ff-line:rgba(212,175,55,.2); --ff-line-soft:rgba(255,255,255,.08); --ff-text:#e2e8e4; --ff-muted:#a3b3a7;
  --ff-ok:#3ab070; --ff-warn:#e0a83a; --ff-bad:#e55353; --ff-radius:16px;
}
/* keep the theme's custom cursor, but show the real one where people type & click precisely */
@media(pointer:fine){.ff-form input,.ff-form select,.ff-form textarea,.bee-chat textarea,.bee-chat input{cursor:text}
  .ff-form button,.ff-form .btn,.bee-chat button,.ff-cal button,.ff-slot,.ff-qty button{cursor:pointer}}

/* ---------------- header & nav ---------------- */
.ff-nav{gap:1.35rem}
.ff-nav .nav-link{font-size:.74rem;letter-spacing:.13em;white-space:nowrap}
.ff-nav-item{position:relative;display:flex;align-items:center}
.ff-sub-toggle{display:none;background:none;border:0;color:var(--ff-gold);font-size:1rem;padding:.25rem .5rem}
.ff-dropdown{position:absolute;top:calc(100% + 14px);left:50%;transform:translate(-50%,8px);min-width:230px;padding:.9rem;border-radius:14px;
  background:rgba(8,13,10,.97);border:1px solid var(--ff-line);box-shadow:0 24px 60px rgba(0,0,0,.6);opacity:0;visibility:hidden;
  transition:opacity .25s ease,transform .25s ease,visibility .25s;z-index:1200}
.ff-dropdown::before{content:"";position:absolute;left:0;right:0;top:-16px;height:16px}
.ff-nav-item:hover .ff-dropdown,.ff-nav-item:focus-within .ff-dropdown{opacity:1;visibility:visible;transform:translate(-50%,0)}
.ff-dropdown-title{display:block;font-size:.62rem;letter-spacing:.25em;text-transform:uppercase;color:var(--ff-gold);padding:.2rem .6rem .55rem;border-bottom:1px solid var(--ff-line-soft);margin-bottom:.35rem}
.ff-dropdown a{display:block;padding:.5rem .6rem;border-radius:8px;font-size:.88rem;color:var(--ff-text);text-decoration:none;white-space:nowrap}
.ff-dropdown a:hover{background:rgba(212,175,55,.1);color:var(--ff-gold)}
.header-actions{gap:.7rem}
.header-actions .btn-book-header{padding:.62rem 1.05rem;font-size:.72rem}
.ff-free-btn.is-active{border-color:var(--ff-gold);color:var(--ff-gold)}
.ff-account-btn{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--ff-line);color:var(--ff-text);transition:.25s}
.ff-account-btn:hover{border-color:var(--ff-gold);color:var(--ff-gold)}
.ff-avatar{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--color-gold-gradient);color:#111;font-weight:700}
@media (max-width:1500px){.ff-nav{gap:1rem}.ff-nav .nav-link{font-size:.68rem;letter-spacing:.1em}.brand-subtitle{display:none}}
/* drawer earlier than the original theme because there are more menu items */
@media (max-width:1280px){
  .mobile-toggle{display:block}
  .ff-nav{position:fixed;top:0;right:0;width:min(88vw,400px);height:100dvh;background:rgba(6,9,7,.985);backdrop-filter:blur(20px);
    flex-direction:column;align-items:stretch;justify-content:flex-start;padding:5.5rem 1.6rem 2.5rem;gap:0;box-shadow:-10px 0 40px rgba(0,0,0,.8);
    transform:translateX(100%);visibility:hidden;transition:transform .4s cubic-bezier(.16,1,.3,1),visibility .4s;z-index:1005;overflow-y:auto;border-left:1px solid rgba(212,175,55,.3)}
  .ff-nav.menu-open{transform:translateX(0);visibility:visible}
  .ff-nav-item{flex-wrap:wrap;border-bottom:1px solid var(--ff-line-soft)}
  .ff-nav .nav-link{flex:1;font-size:1rem;padding:.85rem 0;border:0}
  .ff-sub-toggle{display:block}
  .ff-dropdown{position:static;transform:none;opacity:1;visibility:visible;display:none;width:100%;box-shadow:none;border:0;background:transparent;padding:0 0 .7rem .4rem;min-width:0}
  .ff-nav-item.open .ff-dropdown{display:block}
  .ff-nav-item:hover .ff-dropdown{transform:none}
  .ff-dropdown-title{display:none}
  .header-actions .btn-book-header{display:none}
  .mobile-menu-cta{display:flex;flex-direction:column;margin-top:1.5rem}
  .mobile-backdrop.show{position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:999}
}

/* ---------------- flash / hero / tabs ---------------- */
.ff-flash{position:fixed;top:96px;left:50%;transform:translateX(-50%);z-index:1500;padding:.9rem 1.4rem;border-radius:12px;background:#132018;border:1px solid var(--ff-line);color:var(--ff-text);box-shadow:var(--shadow-md);animation:ffFlash 6s forwards;max-width:92vw}
.ff-flash-error{border-color:rgba(229,83,83,.6)}.ff-flash-success{border-color:rgba(58,176,112,.6)}
@keyframes ffFlash{0%{opacity:0;transform:translate(-50%,-10px)}6%,85%{opacity:1;transform:translate(-50%,0)}100%{opacity:0;visibility:hidden}}
.subpage-hero.ff-hero-compact{height:56vh!important;min-height:440px!important}
.ff-section-tabs{position:sticky;top:76px;z-index:900;background:rgba(6,10,8,.92);backdrop-filter:blur(14px);border-bottom:1px solid var(--ff-line)}
.ff-section-tabs .container{display:flex;gap:.4rem;overflow-x:auto;padding-top:.7rem;padding-bottom:.7rem;scrollbar-width:none}
.ff-section-tabs a{flex:0 0 auto;padding:.5rem 1rem;border-radius:999px;border:1px solid var(--ff-line-soft);font-size:.8rem;color:var(--ff-text);text-decoration:none;white-space:nowrap;transition:.25s}
.ff-section-tabs a b{color:var(--ff-gold);font-weight:600;margin-right:.25rem}
.ff-section-tabs a:hover,.ff-section-tabs a.is-current{border-color:var(--ff-gold);background:rgba(212,175,55,.08)}
section[id]{scroll-margin-top:150px}

/* ---------------- generic content blocks ---------------- */
.ff-grid{display:grid;gap:1.6rem}
.ff-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.ff-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.ff-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:1100px){.ff-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.ff-grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.ff-grid-2,.ff-grid-3,.ff-grid-4{grid-template-columns:1fr}}
.ff-card{background:linear-gradient(180deg,var(--ff-card-2),var(--ff-card));border:1px solid var(--ff-line);border-radius:var(--ff-radius);overflow:hidden;display:flex;flex-direction:column}
.ff-card-media{position:relative;aspect-ratio:16/10;overflow:hidden}
.ff-card-media img{width:100%;height:100%;object-fit:cover;transition:transform 1s ease}
.ff-card:hover .ff-card-media img{transform:scale(1.05)}
.ff-card-tag{position:absolute;left:1rem;top:1rem;background:rgba(6,9,7,.82);border:1px solid var(--ff-line);border-radius:999px;padding:.3rem .8rem;font-size:.72rem;letter-spacing:.12em;color:var(--ff-gold);text-transform:uppercase}
.ff-card-price{position:absolute;right:1rem;bottom:1rem;background:rgba(6,9,7,.86);border-radius:10px;padding:.45rem .8rem;font-size:.85rem}
.ff-card-price strong{color:var(--ff-gold);font-size:1.1rem}
.ff-card-body{padding:1.4rem 1.5rem 1.6rem;display:flex;flex-direction:column;gap:.7rem;flex:1}
.ff-card-body h3{font-family:var(--font-serif);font-size:1.6rem;line-height:1.2;color:var(--color-ivory)}
.ff-card-body p{color:var(--ff-muted);font-size:.95rem}
.ff-card-actions{margin-top:auto;display:flex;gap:.6rem;flex-wrap:wrap;padding-top:.6rem}
.ff-card-actions .btn{flex:1;text-align:center;padding:.75rem 1rem;font-size:.75rem}
.ff-chips{display:flex;flex-wrap:wrap;gap:.4rem}
.ff-chip{font-size:.75rem;padding:.3rem .65rem;border-radius:999px;border:1px solid var(--ff-line-soft);color:var(--ff-muted)}
.ff-list-check{list-style:none;padding:0;margin:.4rem 0;display:grid;gap:.35rem}
.ff-list-check li{position:relative;padding-left:1.5rem;font-size:.93rem;color:var(--ff-text)}
.ff-list-check li::before{content:"✦";position:absolute;left:0;color:var(--ff-gold);font-size:.8rem;top:.15rem}
.ff-meta-row{display:flex;flex-wrap:wrap;gap:1.2rem;font-size:.82rem;color:var(--ff-muted)}
.ff-meta-row b{color:var(--ff-gold);font-weight:600}
.ff-badge-num{font-family:var(--font-serif);font-size:3.5rem;line-height:1;color:rgba(212,175,55,.25)}
.ff-feature{display:grid;grid-template-columns:1.05fr 1fr;gap:3.5rem;align-items:center}
.ff-feature.reverse>:first-child{order:2}
.ff-feature-img{border-radius:22px;overflow:hidden;border:1px solid var(--ff-line);aspect-ratio:4/3;position:relative}
.ff-feature-img img{width:100%;height:100%;object-fit:cover}
@media(max-width:900px){.ff-feature{grid-template-columns:1fr;gap:2rem}.ff-feature.reverse>:first-child{order:0}}
.ff-panel{background:var(--ff-card);border:1px solid var(--ff-line);border-radius:var(--ff-radius);padding:1.6rem}
.ff-muted{color:var(--ff-muted)}.ff-gold{color:var(--ff-gold)}
.ff-center{text-align:center}
.ff-mt{margin-top:2rem}.ff-mb{margin-bottom:2rem}

/* ---------------- forms ---------------- */
.ff-form label{display:block;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ff-gold);margin-bottom:.4rem;font-weight:600}
.ff-input,.ff-form input[type=text],.ff-form input[type=email],.ff-form input[type=tel],.ff-form input[type=password],.ff-form input[type=date],.ff-form input[type=number],.ff-form select,.ff-form textarea{
  width:100%;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.14);border-radius:10px;color:var(--ff-text);padding:.8rem .95rem;font:inherit;font-size:.95rem;transition:border-color .2s,box-shadow .2s}
.ff-form select option{background:#0c120e}
.ff-form input:focus,.ff-form select:focus,.ff-form textarea:focus,.ff-input:focus{outline:none;border-color:var(--ff-gold);box-shadow:0 0 0 3px rgba(212,175,55,.15)}
.ff-form textarea{min-height:110px;resize:vertical}
.ff-form .ff-field{margin-bottom:1.1rem}
.ff-form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:1rem}
.ff-check{display:flex;gap:.6rem;align-items:flex-start;font-size:.9rem;color:var(--ff-muted);text-transform:none!important;letter-spacing:0!important;font-weight:400!important}
.ff-check input{margin-top:.25rem;accent-color:var(--ff-gold)}
.ff-alert{padding:1rem 1.2rem;border-radius:12px;margin-bottom:1.2rem;font-size:.93rem;border:1px solid}
.ff-alert-error{background:rgba(229,83,83,.08);border-color:rgba(229,83,83,.45);color:#f3b1b1}
.ff-alert-ok{background:rgba(58,176,112,.08);border-color:rgba(58,176,112,.45);color:#a6e3c2}
.ff-alert-info{background:rgba(212,175,55,.07);border-color:var(--ff-line);color:var(--ff-text)}
.btn[disabled]{opacity:.45;pointer-events:none}

/* ---------------- booking wizard ---------------- */
.ff-book{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:2rem;align-items:start}
@media(max-width:1050px){.ff-book{grid-template-columns:1fr}}
.ff-steps{display:flex;gap:.5rem;margin-bottom:1.6rem;flex-wrap:wrap}
.ff-step{display:flex;align-items:center;gap:.5rem;padding:.55rem 1rem;border-radius:999px;border:1px solid var(--ff-line-soft);font-size:.8rem;color:var(--ff-muted);background:none;font-family:inherit}
.ff-step b{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.06);font-size:.72rem}
.ff-step.is-active{border-color:var(--ff-gold);color:var(--ff-text)}.ff-step.is-active b{background:var(--ff-gold);color:#111}
.ff-step.is-done b{background:var(--ff-ok);color:#fff}
.ff-pane{display:none}.ff-pane.is-active{display:block;animation:ffIn .4s ease}
@keyframes ffIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.ff-searchbar{display:grid;grid-template-columns:1fr 1fr .7fr .7fr auto;gap:.8rem;align-items:end}
@media(max-width:800px){.ff-searchbar{grid-template-columns:1fr 1fr}}
.ff-room-row{display:grid;grid-template-columns:150px 1fr auto;gap:1.2rem;padding:1.1rem;border:1px solid var(--ff-line-soft);border-radius:14px;margin-bottom:1rem;background:rgba(255,255,255,.02);transition:border-color .25s}
.ff-room-row.is-selected{border-color:var(--ff-gold);background:rgba(212,175,55,.05)}
.ff-room-row.is-full{opacity:.5}
.ff-room-row img{width:150px;height:110px;object-fit:cover;border-radius:10px}
.ff-room-row h4{font-family:var(--font-serif);font-size:1.35rem;color:var(--color-ivory)}
.ff-room-price{text-align:right;min-width:140px}
.ff-room-price strong{display:block;font-size:1.25rem;color:var(--ff-gold)}
.ff-room-price small{color:var(--ff-muted);font-size:.75rem}
.ff-avail{font-size:.75rem;font-weight:600}.ff-avail.ok{color:var(--ff-ok)}.ff-avail.low{color:var(--ff-warn)}.ff-avail.none{color:var(--ff-bad)}
@media(max-width:640px){.ff-room-row{grid-template-columns:1fr}.ff-room-row img{width:100%;height:160px}.ff-room-price{text-align:left}}
.ff-qty{display:inline-flex;align-items:center;border:1px solid var(--ff-line);border-radius:999px;overflow:hidden;margin-top:.5rem}
.ff-qty button{width:34px;height:34px;background:none;border:0;color:var(--ff-gold);font-size:1.1rem}
.ff-qty button:hover{background:rgba(212,175,55,.12)}
.ff-qty input{width:42px;text-align:center;background:none;border:0;color:var(--ff-text);font:inherit;-moz-appearance:textfield}
.ff-qty input::-webkit-inner-spin-button{display:none}
.ff-subhead{font-family:var(--font-serif);font-size:1.6rem;color:var(--color-ivory);margin:1.6rem 0 .9rem}
.ff-opt{display:flex;gap:.7rem;align-items:center;padding:.6rem .8rem;border:1px solid var(--ff-line-soft);border-radius:10px;margin:.35rem 0;font-size:.9rem;cursor:pointer}
.ff-opt input{accent-color:var(--ff-gold)}
.ff-opt span.price{margin-left:auto;color:var(--ff-gold);font-size:.85rem;white-space:nowrap}
.ff-pkg-card{border:1px solid var(--ff-line-soft);border-radius:14px;padding:1.1rem;margin-bottom:1rem}
.ff-pkg-card.is-selected{border-color:var(--ff-gold);background:rgba(212,175,55,.04)}
.ff-pkg-head{display:flex;gap:1rem;align-items:center}
.ff-pkg-head img{width:84px;height:84px;object-fit:cover;border-radius:10px}
.ff-pkg-config{display:none;margin-top:1rem;padding-top:1rem;border-top:1px dashed var(--ff-line-soft)}
.ff-pkg-card.is-selected .ff-pkg-config{display:block}
.ff-slots{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.6rem}
.ff-slot{padding:.45rem .7rem;border-radius:8px;border:1px solid var(--ff-line-soft);background:none;color:var(--ff-text);font:inherit;font-size:.82rem}
.ff-slot:hover{border-color:var(--ff-gold)}
.ff-slot.is-selected{background:var(--ff-gold);color:#111;border-color:var(--ff-gold)}
.ff-slot:disabled{opacity:.3;text-decoration:line-through}
.ff-summary{position:sticky;top:110px}
.ff-summary h3{font-family:var(--font-serif);font-size:1.7rem;color:var(--color-ivory);margin-bottom:.4rem}
.ff-summary-lines{list-style:none;padding:0;margin:1rem 0;display:grid;gap:.55rem;font-size:.88rem}
.ff-summary-lines li{display:flex;justify-content:space-between;gap:1rem}
.ff-summary-lines li span:last-child{white-space:nowrap}
.ff-summary-total{display:flex;justify-content:space-between;align-items:baseline;border-top:1px solid var(--ff-line);padding-top:1rem;margin-top:.5rem}
.ff-summary-total strong{font-size:1.8rem;color:var(--ff-gold);font-family:var(--font-serif)}
.ff-coupon{display:flex;gap:.5rem;margin-top:1rem}
.ff-coupon input{flex:1;text-transform:uppercase}
.ff-coupon button{padding:.6rem 1rem}
.ff-coupon-msg{font-size:.8rem;margin-top:.4rem}
.ff-coupon-msg.ok{color:var(--ff-ok)}.ff-coupon-msg.bad{color:var(--ff-bad)}
.ff-nav-buttons{display:flex;justify-content:space-between;gap:1rem;margin-top:1.6rem}

/* ---------------- availability calendar ---------------- */
.ff-cal{background:var(--ff-card);border:1px solid var(--ff-line);border-radius:var(--ff-radius);padding:1.2rem}
.ff-cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.8rem;gap:.5rem;flex-wrap:wrap}
.ff-cal-head h4{font-family:var(--font-serif);font-size:1.4rem;color:var(--color-ivory)}
.ff-cal-head button{background:none;border:1px solid var(--ff-line);color:var(--ff-gold);border-radius:8px;width:34px;height:34px}
.ff-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.ff-cal-dow{font-size:.68rem;text-align:center;color:var(--ff-muted);letter-spacing:.1em;padding:.3rem 0}
.ff-cal-day{min-height:62px;border-radius:8px;padding:.35rem .4rem;font-size:.78rem;background:rgba(255,255,255,.03);border:1px solid transparent;display:flex;flex-direction:column;justify-content:space-between;text-align:left;color:var(--ff-text);font-family:inherit}
.ff-cal-day small{font-size:.66rem;color:var(--ff-muted)}
.ff-cal-day.is-ok{border-color:rgba(58,176,112,.35)}
.ff-cal-day.is-low{border-color:rgba(224,168,58,.5)}
.ff-cal-day.is-full{background:rgba(229,83,83,.07);color:#7d5050}
.ff-cal-day.is-past{opacity:.3}
.ff-cal-day.is-range{background:rgba(212,175,55,.18)}
.ff-cal-day.is-start,.ff-cal-day.is-end{background:var(--ff-gold);color:#111}.ff-cal-day.is-start small,.ff-cal-day.is-end small{color:#111}
button.ff-cal-day:not(:disabled):hover{border-color:var(--ff-gold)}
.ff-cal-legend{display:flex;gap:1rem;font-size:.72rem;color:var(--ff-muted);margin-top:.7rem;flex-wrap:wrap}
.ff-cal-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:.3rem;vertical-align:middle}

/* ---------------- tables & profile ---------------- */
.ff-table{width:100%;border-collapse:collapse;font-size:.9rem}
.ff-table th{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ff-gold);text-align:left;padding:.6rem;border-bottom:1px solid var(--ff-line)}
.ff-table td{padding:.75rem .6rem;border-bottom:1px solid var(--ff-line-soft);vertical-align:top}
.ff-table-wrap{overflow-x:auto}
.badge{display:inline-block;padding:.2rem .6rem;border-radius:999px;font-size:.7rem;font-weight:600;letter-spacing:.04em}
.badge-green{background:rgba(58,176,112,.15);color:#6fd29c}.badge-amber{background:rgba(224,168,58,.15);color:#f0c46b}
.badge-red{background:rgba(229,83,83,.15);color:#f08b8b}.badge-blue{background:rgba(90,150,230,.15);color:#8fb8f0}.badge-grey{background:rgba(255,255,255,.08);color:#aab}
.ff-profile{display:grid;grid-template-columns:300px 1fr;gap:2rem;align-items:start}
@media(max-width:900px){.ff-profile{grid-template-columns:1fr}}
.ff-profile-card{text-align:center}
.ff-profile-card .ff-avatar{width:84px;height:84px;font-size:2rem;margin:0 auto 1rem}
.ff-stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin:1.2rem 0}
.ff-stat-row div{background:rgba(255,255,255,.03);border-radius:10px;padding:.7rem .3rem}
.ff-stat-row strong{display:block;font-size:1.3rem;color:var(--ff-gold);font-family:var(--font-serif)}
.ff-stat-row span{font-size:.68rem;color:var(--ff-muted);letter-spacing:.08em;text-transform:uppercase}
.ff-tabs{display:flex;gap:.4rem;border-bottom:1px solid var(--ff-line);margin-bottom:1.4rem;flex-wrap:wrap}
.ff-tabs button{background:none;border:0;border-bottom:2px solid transparent;color:var(--ff-muted);padding:.8rem 1rem;font:inherit;font-size:.88rem}
.ff-tabs button.is-active{color:var(--ff-gold);border-bottom-color:var(--ff-gold)}
.ff-tab-pane{display:none}.ff-tab-pane.is-active{display:block}
.ff-booking-card{border:1px solid var(--ff-line-soft);border-radius:14px;padding:1.1rem 1.3rem;margin-bottom:.9rem;display:flex;gap:1rem;justify-content:space-between;align-items:center;flex-wrap:wrap}
.ff-booking-card h4{font-size:1.05rem;color:var(--color-ivory)}
.ff-auth{max-width:480px;margin:0 auto}

/* ---------------- articles / products / map ---------------- */
.ff-article-cat{font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ff-gold)}
.ff-article-body{max-width:760px;margin:0 auto;font-size:1.06rem;line-height:1.9}
.ff-article-body p{margin-bottom:1.2rem}
.ff-article-body img{max-width:100%;border-radius:14px}
.ff-map{position:relative;border-radius:22px;overflow:hidden;border:1px solid var(--ff-line);background:#0b140e}
.ff-map svg{display:block;width:100%;height:auto}
.ff-map .pin{cursor:pointer}
.ff-map .pin circle{transition:r .25s}
.ff-map .pin:hover circle.dot{r:11}
.ff-map-legend{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:.6rem;margin-top:1rem}
.ff-map-legend div{display:flex;gap:.6rem;align-items:center;font-size:.86rem;padding:.55rem .7rem;border:1px solid var(--ff-line-soft);border-radius:10px}
.ff-map-legend b{width:24px;height:24px;border-radius:50%;background:var(--ff-gold);color:#111;display:grid;place-items:center;font-size:.72rem;flex:none}
.ff-hours{width:100%;border-collapse:collapse}
.ff-hours td{padding:.8rem .2rem;border-bottom:1px dashed var(--ff-line-soft)}
.ff-hours td:last-child{text-align:right;color:var(--ff-gold);font-weight:600}
.ff-line-box{display:flex;gap:1.2rem;align-items:center;border:1px solid rgba(6,199,85,.45);background:rgba(6,199,85,.06);border-radius:16px;padding:1.2rem 1.4rem}
.ff-line-logo{width:52px;height:52px;border-radius:14px;background:#06c755;color:#fff;display:grid;place-items:center;font-weight:800;font-size:.9rem;flex:none}

/* =====================================================================
   BEE — AI chat assistant
   ===================================================================== */
.bee-chat{position:fixed;right:22px;bottom:22px;z-index:2000;font-family:var(--font-sans)}
.bee-launcher{position:relative;width:74px;height:74px;border-radius:50%;border:1px solid rgba(212,175,55,.55);cursor:pointer;
  background:radial-gradient(circle at 35% 30%,#1d2b21,#070b08 70%);box-shadow:0 0 0 0 rgba(244,196,48,.5),0 14px 34px rgba(0,0,0,.55);animation:beePulse 3.2s infinite}
.bee-launcher:hover{transform:scale(1.05)}
@keyframes beePulse{0%{box-shadow:0 0 0 0 rgba(244,196,48,.45),0 14px 34px rgba(0,0,0,.55)}70%{box-shadow:0 0 0 18px rgba(244,196,48,0),0 14px 34px rgba(0,0,0,.55)}100%{box-shadow:0 0 0 0 rgba(244,196,48,0),0 14px 34px rgba(0,0,0,.55)}}
/* the bee flies in a little loop around the launcher */
.bee-flyer{position:absolute;left:50%;top:50%;width:46px;height:46px;margin:-23px 0 0 -23px;pointer-events:none;animation:beeOrbit 7s ease-in-out infinite}
.bee-flyer .bee-svg{width:100%;height:100%;animation:beeBob .5s ease-in-out infinite alternate;filter:drop-shadow(0 0 8px rgba(244,196,48,.55))}
@keyframes beeOrbit{
  0%{transform:translate(0,0) rotate(0)}
  15%{transform:translate(-30px,-46px) rotate(-14deg)}
  30%{transform:translate(-62px,-18px) rotate(-6deg)}
  45%{transform:translate(-36px,10px) rotate(10deg)}
  60%{transform:translate(0,0) rotate(0)}
  100%{transform:translate(0,0) rotate(0)}}
@keyframes beeBob{from{transform:translateY(-2px)}to{transform:translateY(2px)}}
.bee-svg .wing{transform-origin:50% 100%;animation:beeWing .09s linear infinite alternate}
.bee-svg .wing.r{animation-delay:.045s}
@keyframes beeWing{from{transform:scaleY(1) rotate(0)}to{transform:scaleY(.35) rotate(8deg)}}
.bee-trail{position:absolute;width:4px;height:4px;border-radius:50%;background:#f4c430;box-shadow:0 0 10px #f4c430;opacity:0;pointer-events:none;animation:beeSpark 1.4s ease-out forwards}
@keyframes beeSpark{0%{opacity:.9;transform:scale(1)}100%{opacity:0;transform:scale(.2) translateY(10px)}}
.bee-bubble{position:absolute;right:86px;bottom:16px;width:max-content;max-width:230px;background:#f7e8cb;color:#1b1b14;font-size:.84rem;line-height:1.4;padding:.7rem .95rem;border-radius:14px 14px 4px 14px;box-shadow:0 10px 30px rgba(0,0,0,.4);opacity:0;transform:translateY(8px);transition:.4s;pointer-events:none}
.bee-bubble.show{opacity:1;transform:none;pointer-events:auto}
.bee-badge{position:absolute;top:-2px;right:-2px;width:20px;height:20px;border-radius:50%;background:#e55353;color:#fff;font-size:.68rem;display:grid;place-items:center;font-weight:700}
.bee-panel{position:absolute;right:0;bottom:90px;width:min(390px,calc(100vw - 28px));height:min(600px,calc(100dvh - 130px));display:flex;flex-direction:column;
  background:linear-gradient(180deg,#0f1912,#080d0a);border:1px solid rgba(212,175,55,.35);border-radius:22px;overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,.7);
  opacity:0;visibility:hidden;transform:translateY(16px) scale(.97);transform-origin:bottom right;transition:.35s cubic-bezier(.16,1,.3,1)}
.bee-chat.open .bee-panel{opacity:1;visibility:visible;transform:none}
.bee-chat.open .bee-bubble{display:none}
.bee-head{display:flex;align-items:center;gap:.8rem;padding:1rem 1.1rem;border-bottom:1px solid rgba(212,175,55,.2);background:rgba(212,175,55,.05)}
.bee-head-avatar{width:44px;height:44px;border-radius:50%;background:radial-gradient(circle,#1f2e23,#0a0f0b);border:1px solid rgba(212,175,55,.5);display:grid;place-items:center;flex:none}
.bee-head-avatar .bee-svg{width:32px;height:32px;animation:beeBob .5s ease-in-out infinite alternate}
.bee-head strong{display:block;color:#f4f6f4;font-size:1rem}
.bee-head small{color:#7fd3a0;font-size:.74rem}
.bee-head small::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:#3ab070;margin-right:.35rem;vertical-align:middle}
.bee-close{margin-left:auto;background:none;border:0;color:#a3b3a7;font-size:1.4rem;cursor:pointer;line-height:1}
.bee-msgs{flex:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:.7rem;scrollbar-width:thin}
.bee-msg{max-width:86%;padding:.7rem .9rem;border-radius:14px;font-size:.88rem;line-height:1.5;white-space:pre-wrap;word-wrap:break-word}
.bee-msg a{color:#f4c430;text-decoration:underline}
.bee-msg.bot{background:#162219;color:#e2e8e4;border:1px solid rgba(212,175,55,.15);border-bottom-left-radius:4px;align-self:flex-start}
.bee-msg.user{background:linear-gradient(135deg,#e9c95a,#c9a13a);color:#151208;border-bottom-right-radius:4px;align-self:flex-end}
.bee-typing{display:flex;gap:4px;padding:.8rem .9rem;align-self:flex-start;background:#162219;border-radius:14px}
.bee-typing i{width:6px;height:6px;border-radius:50%;background:#d4af37;animation:beeDot 1s infinite}
.bee-typing i:nth-child(2){animation-delay:.15s}.bee-typing i:nth-child(3){animation-delay:.3s}
@keyframes beeDot{0%,60%,100%{opacity:.25;transform:none}30%{opacity:1;transform:translateY(-4px)}}
.bee-quick{display:flex;gap:.4rem;flex-wrap:wrap;padding:0 1rem .6rem}
.bee-quick button{background:none;border:1px solid rgba(212,175,55,.35);color:#e9d9a8;border-radius:999px;padding:.38rem .75rem;font-size:.76rem;cursor:pointer;font-family:inherit}
.bee-quick button:hover{background:rgba(212,175,55,.12)}
.bee-form{display:flex;gap:.5rem;padding:.8rem;border-top:1px solid rgba(212,175,55,.18)}
.bee-form textarea{flex:1;resize:none;height:44px;max-height:110px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);border-radius:12px;color:#e2e8e4;padding:.7rem .8rem;font:inherit;font-size:.88rem}
.bee-form textarea:focus{outline:none;border-color:#d4af37}
.bee-form button{width:44px;height:44px;border-radius:12px;border:0;background:linear-gradient(135deg,#f4c430,#c9a13a);color:#111;cursor:pointer;display:grid;place-items:center}
.bee-form button:disabled{opacity:.5}
.bee-foot{font-size:.66rem;color:#6d7d72;text-align:center;padding:0 0 .55rem}
@media(max-width:520px){.bee-chat{right:14px;bottom:14px}.bee-launcher{width:64px;height:64px}.bee-panel{bottom:80px}.bee-bubble{right:74px}}
@media(prefers-reduced-motion:reduce){.bee-flyer,.bee-launcher,.bee-svg .wing{animation:none}}
#backToTop{display:none!important}
/* fixes */
.ff-form .ff-qty input,.ff-qty input{width:42px!important;min-width:0;padding:0!important;border:0!important;background:none!important;box-shadow:none!important;text-align:center}
.ff-qty{flex:none}
.ff-footer-col .footer-heading{margin-top:1.6rem}
.ff-footer-col .footer-heading:first-child{margin-top:0}
.ff-footer-col .footer-heading a{color:inherit;text-decoration:none}
.ff-footer-sub li{margin-bottom:.35rem}
.bee-msg a.btn{color:#151208;text-decoration:none}
