:root{
  --ff-orange:#ff9b33;
  --ff-orange-soft:#fff2de;
  --ff-red:#e85f1d;
  --ff-red-soft:#fff0e6;
  --ff-cream:#fffaf4;
  --ff-paper:#fffdfa;
  --ff-ink:#352114;
  --ff-muted:#80695a;
  --ff-border:#f1dccb;
  --ff-green:#2fa06b;
  --ff-yellow:#ffce67;
  --radius:24px;
  --shadow:0 20px 56px rgba(162,92,31,.10);
  --glow:0 16px 40px rgba(244,150,62,.18);
}
body{
  background:
   radial-gradient(circle at 12% 10%, rgba(255,214,163,.22), transparent 22%),
   radial-gradient(circle at 86% 8%, rgba(255,181,102,.16), transparent 20%),
   linear-gradient(180deg,#fffdf9 0%,#fff7ef 28%,#fff9f2 100%) !important;
}
.topbar{background:rgba(255,253,249,.88)!important;backdrop-filter:blur(18px)!important;border-bottom:1px solid rgba(235,208,184,.75)!important;box-shadow:0 8px 28px rgba(176,109,39,.08)!important}
.topbar .brand img{filter:drop-shadow(0 10px 24px rgba(205,109,34,.12))}
.nav-links a,.header-action,.topbar .header-search,.topbar .ff-mobile-search-wrap,.mobile-menu-panel,.mobile-bottom-nav{border-color:#f1dfcf!important;background:rgba(255,255,255,.92)!important;box-shadow:0 10px 26px rgba(164,94,29,.06)!important}
.panel,.stat,.timeline,.media-card,.receipt,.sidebar,.product-card,.exp-product{background:linear-gradient(180deg,#fffefc 0%,#fff9f3 100%)!important;border:1px solid #f2dfcf!important;box-shadow:var(--shadow)!important}
.panel,.stat,.timeline,.media-card,.receipt,.sidebar,.product-card,.exp-product,.exp-page-cover,.hero,.ff-premium-hero,.ff-promo-banner,.ff-premium-feature,.ff-poster-format,.ff-map-shell{border-radius:24px!important}
.btn{border-radius:16px!important;font-weight:900!important}
.btn-primary{background:linear-gradient(135deg,#ffab43,#eb6820)!important;color:#fff!important;box-shadow:var(--glow)!important}
.btn-primary:hover{background:linear-gradient(135deg,#ffa02d,#e05815)!important}
.btn-outline{background:#fffaf6!important;border-color:#efd7c0!important;color:#4f3220!important}
.btn-soft{background:#fff0e2!important;border-color:#f2ccb0!important;color:#db6520!important}
.tag{background:#fff0df!important;border:1px solid #f3cfb1!important;color:#dd621c!important}
.price{color:#de611d!important}
.footer-inner{grid-template-columns:1.4fr 1fr 1fr 1.2fr!important}
.site-footer{background:linear-gradient(180deg,#fff1e1,#ffe9d1)!important;color:#543423!important}

/* Premium heroes and promo sections */
.ff-premium-hero{position:relative;overflow:hidden;padding:34px;border:1px solid #f0d9c4;background:linear-gradient(120deg,rgba(62,29,9,.88),rgba(96,46,12,.7)),var(--ff-home-hero) center/cover no-repeat;color:#fff;box-shadow:0 30px 70px rgba(114,57,16,.24)!important;min-height:560px;display:grid;grid-template-columns:1.05fr .95fr;gap:22px;align-items:stretch}
.ff-premium-hero:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at top right, rgba(255,196,125,.22), transparent 30%),linear-gradient(0deg,rgba(29,13,4,.14),rgba(29,13,4,.14))}
.ff-premium-copy,.ff-premium-media{position:relative;z-index:1}
.ff-premium-copy{display:flex;flex-direction:column;justify-content:center;max-width:660px}
.ff-premium-copy h1{font-size:clamp(2.8rem,5.7vw,5.5rem);line-height:.96;margin:12px 0 16px;color:#fff;letter-spacing:-.04em}
.ff-premium-copy p{font-size:1.08rem;max-width:560px;color:#fff2e8;line-height:1.65}
.ff-premium-copy em{color:#ffd089;font-style:normal}
.ff-premium-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:22px}
.ff-premium-stat{padding:16px 14px;border-radius:18px;background:rgba(255,255,255,.11);border:1px solid rgba(255,255,255,.17);backdrop-filter:blur(8px)}
.ff-premium-stat strong{display:block;font-size:1.35rem;color:#fff}
.ff-premium-stat small{color:#ffe4cb}
.ff-premium-cta{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
.ff-premium-media{display:grid;grid-template-rows:1fr auto;gap:12px}
.ff-premium-carousel{position:relative;overflow:hidden;border-radius:26px;min-height:340px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15)}
.ff-premium-slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transform:scale(1.03);transition:opacity .5s ease,transform .7s ease;display:flex;align-items:flex-end;padding:24px}
.ff-premium-slide:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(25,13,6,.05),rgba(25,13,6,.6))}
.ff-premium-slide span{position:relative;z-index:1;display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border-radius:999px;background:rgba(255,255,255,.92);color:#612f12;font-weight:900}
.ff-premium-slide.is-active{opacity:1;transform:scale(1)}
.ff-premium-carousel-controls{position:absolute;right:16px;bottom:14px;z-index:3;display:flex;gap:8px}
.ff-premium-carousel-controls button{width:42px;height:42px;border-radius:14px;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.17);color:#fff;backdrop-filter:blur(8px)}
.ff-promo-ribbon{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:18px}
.ff-promo-banner{position:relative;padding:22px;overflow:hidden;border:1px solid #f2dcc9;background:linear-gradient(135deg,#fff9f3 0%,#ffe8cc 100%)}
.ff-promo-banner.secondary{background:linear-gradient(135deg,#fff7ef 0%,#ffe0c4 100%)}
.ff-promo-banner.tertiary{background:linear-gradient(135deg,#fff7e8 0%,#ffd79f 100%)}
.ff-promo-banner:after{content:"";position:absolute;right:-38px;bottom:-38px;width:140px;height:140px;border-radius:50%;background:rgba(255,255,255,.34)}
.ff-promo-banner .promo-badge{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;border-radius:999px;background:#fff;border:1px solid #f1ddcb;color:#dc6120;font-size:.76rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em}
.ff-promo-banner h3{margin:14px 0 8px;font-size:1.55rem;line-height:1.04}
.ff-promo-banner p{margin:0;color:#7a5d4b;max-width:280px}
.ff-promo-banner .promo-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:18px}
.ff-promo-banner .promo-actions .mini{font-size:.85rem;color:#8d6a54;font-weight:800}

.ff-premium-section-head{display:flex;align-items:end;justify-content:space-between;gap:14px;margin:28px 0 14px;flex-wrap:wrap}
.ff-premium-section-head h2{margin:0;font-size:clamp(1.75rem,3vw,2.7rem);letter-spacing:-.03em}
.ff-premium-section-head p{margin:6px 0 0;color:var(--ff-muted)}
.ff-category-pills{display:flex;gap:10px;overflow:auto;padding:4px 2px 10px;scrollbar-width:none}
.ff-category-pills::-webkit-scrollbar{display:none}
.ff-category-pill{display:inline-flex;align-items:center;gap:10px;padding:12px 16px;border-radius:999px;background:#fff;border:1px solid #eedbc8;font-weight:900;white-space:nowrap;box-shadow:0 10px 24px rgba(147,88,32,.06)}
.ff-category-pill.active,.ff-category-pill:hover{background:#fff0e1;color:#dd621d;border-color:#f0cba8}
.ff-premium-search{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:12px;border-radius:22px;border:1px solid #f0dccb;background:rgba(255,255,255,.88);box-shadow:0 16px 38px rgba(165,96,30,.08)}
.ff-premium-search label{display:flex;align-items:center;gap:10px;padding:0 12px}
.ff-premium-search input{width:100%;border:0;outline:0;background:transparent;min-height:46px;color:#503426}

/* Gourmet product cards */
.exp-products{gap:20px!important}
.exp-product{position:relative;overflow:hidden;border-radius:26px!important;transition:transform .22s ease, box-shadow .22s ease;background:linear-gradient(180deg,#ffffff 0%,#fff9f2 100%)!important}
.exp-product:hover{transform:translateY(-6px)!important;box-shadow:0 28px 56px rgba(160,92,31,.16)!important}
.exp-product-photo{height:230px!important;background:linear-gradient(180deg,#fff5e8,#ffe7cb)!important}
.exp-product-photo img{transform-origin:center center}
.exp-product:before{content:"";position:absolute;inset:auto -20% -110px auto;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(255,179,89,.20) 0%,rgba(255,179,89,0) 65%);pointer-events:none;z-index:0}
.exp-product-body{position:relative;z-index:1;padding:18px!important}
.exp-product-category{font-size:.68rem!important;background:#fff2e3;padding:6px 10px;border-radius:999px;display:inline-flex;width:max-content;border:1px solid #f2d3b5;color:#db6220!important}
.exp-product-body h3{font-size:1.28rem!important;min-height:auto!important;margin:10px 0 8px!important;color:#341f13!important}
.exp-product-desc{font-size:.89rem!important;color:#7e695a!important;min-height:44px!important}
.exp-product-meta{margin:14px 0!important;justify-content:space-between;flex-wrap:wrap}
.exp-product-meta span{background:#fff8f1;padding:8px 10px;border-radius:999px;border:1px solid #f2dfce;font-size:.76rem!important}
.exp-product-price{margin-top:14px!important;align-items:center!important}
.exp-product-price b{font-size:1.55rem!important;color:#de611d!important}
.exp-product-buy{margin-top:15px!important}
.exp-product-buy .btn{min-height:46px!important}
.exp-product-buy .exp-circle-btn{display:grid;place-items:center;border:1px solid #efd8c2;background:#fff9f4;box-shadow:0 10px 22px rgba(163,92,29,.07)}
.exp-product-chip{background:#fff!important;border:1px solid #f0d7bf!important;box-shadow:0 10px 24px rgba(92,48,16,.09)!important}
.exp-product-soldout{backdrop-filter:blur(6px)}

/* products and detail premium wrappers */
.ff-products-shell{display:grid;gap:18px}
.ff-products-intro{padding:26px;border:1px solid #f1dccb;background:linear-gradient(135deg,#fff8f1,#ffe8cb);box-shadow:var(--shadow)}
.ff-products-intro-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:18px;align-items:center}
.ff-products-intro h1{margin:10px 0;font-size:clamp(2.2rem,4vw,4rem);line-height:1.02}
.ff-products-intro p{color:#6d5647;max-width:580px}
.ff-products-card-stack{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.ff-products-mini-card{padding:16px;border-radius:20px;background:#fff;border:1px solid #efddcd;box-shadow:0 12px 28px rgba(157,93,30,.07)}
.ff-products-mini-card i{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:#fff0e1;color:#de651f;margin-bottom:10px}
.ff-products-mini-card strong{display:block;font-size:1rem}
.ff-products-mini-card small{color:#7c6556}
.ff-menu-toolbar-wrap{padding:16px;border:1px solid #f1dece;background:rgba(255,255,255,.85)}
.product-detail-card{background:linear-gradient(180deg,#fffdfb,#fff7ee)!important;border-radius:28px!important;box-shadow:0 26px 58px rgba(156,91,31,.11)!important}
.product-description{color:#745d4d}
.ff-product-qr-card{background:linear-gradient(135deg,#fff9f1,#ffe7ca)!important;border:1px solid #efd7c0!important}

/* loyalty poster gallery */
.ff-poster-format-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:18px}
.ff-poster-format{border:1px solid #f1d9c4;background:linear-gradient(180deg,#fffefb,#fff6eb);padding:18px;box-shadow:var(--shadow)}
.ff-poster-format-header{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:14px}
.ff-poster-format-header h3{margin:0}
.ff-poster-preview{position:relative;overflow:hidden;border-radius:24px;border:1px solid #f0d8c1;background:linear-gradient(135deg,#fffaf4 0%,#ffe9cb 63%,#ffc56f 100%);min-height:320px;padding:22px;display:flex;flex-direction:column;justify-content:space-between}
.ff-poster-preview.story{aspect-ratio:9/16;min-height:600px}
.ff-poster-preview.square{aspect-ratio:1/1;min-height:420px}
.ff-poster-preview.banner{aspect-ratio:21/9;min-height:250px;display:grid;grid-template-columns:1.2fr .8fr;gap:14px;align-items:center}
.ff-poster-preview.a4{aspect-ratio:1414/2000;min-height:560px}
.ff-poster-preview:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 12% 14%, rgba(255,255,255,.62), transparent 22%),radial-gradient(circle at 88% 12%, rgba(255,255,255,.32), transparent 18%),radial-gradient(circle at 82% 84%, rgba(255,255,255,.22), transparent 16%)}
.ff-poster-content,.ff-poster-qr-side{position:relative;z-index:1}
.ff-poster-content img{width:150px;max-width:48%;object-fit:contain}
.ff-poster-content .eyebrow{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;background:rgba(255,255,255,.74);border:1px solid rgba(255,255,255,.7);font-weight:900;color:#d85f1c;text-transform:uppercase;letter-spacing:.08em}
.ff-poster-content h2{font-size:clamp(1.9rem,3vw,3.4rem);line-height:.98;margin:12px 0 10px;color:#4f2b13}
.ff-poster-content p{margin:0;color:#6a4930;max-width:520px}
.ff-poster-bullets{display:grid;gap:10px;margin-top:16px}
.ff-poster-bullet{display:flex;gap:10px;align-items:flex-start;padding:11px 13px;border-radius:18px;background:rgba(255,255,255,.6);border:1px solid rgba(255,255,255,.7)}
.ff-poster-bullet i{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:#fff3e4;color:#df651e}
.ff-poster-qr-side{display:grid;gap:12px;align-content:start}
.ff-poster-qr-box{padding:16px;border-radius:22px;background:#fff;border:1px solid #f0dcc8;display:grid;place-items:center;min-height:210px;box-shadow:0 12px 30px rgba(160,93,30,.08)}
.ff-poster-address{padding:12px 14px;border-radius:16px;background:rgba(255,255,255,.62);border:1px solid rgba(255,255,255,.7);color:#6d4b33}
.ff-poster-powered{font-weight:900;color:#7a4b22}
.ff-poster-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}

/* Map fullscreen + rotation */
.ff-map-shell{position:relative;overflow:hidden;border:1px solid #f1dece;background:#fff8f0}
.ff-map-toolbar{position:absolute;right:14px;top:14px;z-index:600;display:flex;flex-direction:column;gap:8px}
.ff-map-toolbar button{width:44px;height:44px;border-radius:14px;border:1px solid #efd8c3;background:rgba(255,255,255,.95);box-shadow:0 12px 28px rgba(143,87,33,.12);color:#d75f1d}
.ff-map-hint{position:absolute;left:14px;bottom:14px;z-index:560;padding:10px 14px;border-radius:14px;background:rgba(53,33,20,.86);color:#fff6ef;font-size:.82rem;max-width:min(88%,460px)}
.ff-map-modal{position:fixed;inset:0;z-index:4000;background:rgba(24,13,7,.8);backdrop-filter:blur(10px);display:none;padding:16px}
.ff-map-modal.is-open{display:block}
.ff-map-modal-dialog{width:min(100%,1440px);height:min(100%,960px);margin:0 auto;background:#fffaf4;border-radius:28px;border:1px solid #f0dbc7;box-shadow:0 30px 80px rgba(0,0,0,.24);display:grid;grid-template-rows:auto 1fr}
.ff-map-modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid #f1dfd0}
.ff-map-modal-head h3{margin:0;font-size:1.05rem}
.ff-map-modal-body{position:relative;padding:12px}
.ff-map-modal-body .ff-map-shell{height:100%!important;min-height:0!important}
.leaflet-container.ff-map-rotatable .leaflet-map-pane,
.leaflet-container.ff-map-rotatable .leaflet-shadow-pane,
.leaflet-container.ff-map-rotatable .leaflet-overlay-pane,
.leaflet-container.ff-map-rotatable .leaflet-marker-pane,
.leaflet-container.ff-map-rotatable .leaflet-tooltip-pane,
.leaflet-container.ff-map-rotatable .leaflet-popup-pane{transform-origin:center center;transition:transform .12s linear}
.ff-map-rotation-badge{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;background:#fff3e5;color:#de641f;border:1px solid #efcfaf;font-weight:900}

/* Responsive */
@media(max-width:1100px){
  .ff-premium-hero,.ff-products-intro-grid,.ff-promo-ribbon,.ff-poster-format-grid{grid-template-columns:1fr!important}
  .ff-premium-stats{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:760px){
  .ff-premium-hero{padding:18px;min-height:auto;grid-template-columns:1fr!important}
  .ff-premium-copy h1{font-size:2.6rem}
  .ff-premium-stats{grid-template-columns:1fr 1fr 1fr;gap:8px}
  .ff-promo-ribbon{grid-template-columns:1fr!important}
  .ff-premium-search{grid-template-columns:1fr!important}
  .ff-products-card-stack{grid-template-columns:1fr!important}
  .ff-poster-preview.story{min-height:520px}
  .ff-poster-preview.banner{grid-template-columns:1fr;min-height:340px;aspect-ratio:auto}
  .ff-map-modal{padding:8px}
  .ff-map-modal-dialog{border-radius:18px;height:100%}
}
@media(max-width:420px){
  .ff-premium-copy h1{font-size:2.15rem}
  .ff-premium-stats{grid-template-columns:1fr}
  .ff-poster-preview.square{min-height:320px}
  .ff-poster-preview.a4{min-height:440px}
}
