/*
Theme Name: Freedom Family
Theme URI: https://freedomfam.org
Description: Custom child theme of Lucille Music for The Freedom Family Band — groovy hippie aesthetic with rainbow accents pulled from the band logo, Lilita One display + Inter body, full custom homepage and EPK page templates.
Author: The Freedom Family
Author URI: https://freedomfam.org
Template: lucille
Version: 1.1.0
Text Domain: freedomfam
*/

/* ============================================================
   FREEDOM FAMILY — BRAND OVERRIDES
   Loaded after Lucille's parent stylesheet.
   ============================================================ */

:root {
  /* Foundation */
  --ff-bg:         #F7F1E0;
  --ff-bg-deep:    #EFE7CF;
  --ff-cream:      #FCF7E7;
  --ff-cream-soft: #FFFDF3;
  --ff-ink:        #2A2117;
  --ff-muted:      #6E5F47;
  --ff-walnut:     #3D2F1E;

  /* Logo rainbow (sampled from FFB logo) */
  --ff-magenta: #BC53A1;
  --ff-coral:   #E49B66;
  --ff-yellow:  #F3D979;
  --ff-teal:    #31A39B;
  --ff-blue:    #49A6D5;

  /* Pastel tints */
  --tint-magenta: #F4DFEC;
  --tint-coral:   #F8E4D2;
  --tint-yellow:  #FBF1CF;
  --tint-teal:    #D5ECE8;
  --tint-blue:    #DBEBF5;

  --rainbow: linear-gradient(90deg,
    var(--ff-magenta) 0%,
    var(--ff-coral) 25%,
    var(--ff-yellow) 50%,
    var(--ff-teal) 75%,
    var(--ff-blue) 100%);

  --display: 'Lilita One', 'Coaster Black', system-ui, sans-serif;
  --body: 'Inter', system-ui, -apple-system, sans-serif;
}

/* Nav layout — sitewide so it works on Elementor pages too */
nav.site { position: sticky; top: 0; z-index: 50; background: var(--ff-bg, #F7F1E0); border-bottom: 1px solid rgba(42,33,23,0.10); }
nav.site .inner { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 28px; padding: 14px 32px; max-width: 1280px; margin: 0 auto; }
nav.site .brand { display: flex; align-items: center; justify-content: center; color: var(--ff-ink, #2A2117); text-decoration: none; }
nav.site .brand img { height: 96px; width: auto; display: block; }
nav.site ul { display: flex; gap: 28px; list-style: none; margin: 0; padding: 0; }
nav.site ul.left  { justify-content: flex-end; }
nav.site ul.right { justify-content: flex-start; align-items: center; }
nav.site ul a { color: var(--ff-ink, #2A2117); text-decoration: none; font-family: "Coaster Black", "Lilita One", sans-serif !important; font-size: 17px; letter-spacing: 0.04em; text-transform: uppercase; padding: 8px 0; border-bottom: 2px solid transparent; transition: border-color 0.18s; }
nav.site ul a:hover { border-bottom-color: var(--ff-magenta, #BC53A1); }


/* Body + headings */
body,
body.lucille,
body.elementor-page {
  font-family: var(--body) !important;
  background: var(--ff-bg) !important;
  color: var(--ff-ink) !important;
}

h1, h2, h3, h4, h5, h6,
.elementor-heading-title,
.entry-title {
  font-family: var(--display) !important;
  letter-spacing: 0.005em;
  font-weight: 400 !important;
}

a { color: var(--ff-magenta); }
a:hover { color: var(--ff-coral); }

/* Buttons (Lucille uses several classes — cover the common ones) */
.button,
button,
input[type=submit],
.elementor-button,
.lucille-button,
a.btn {
  font-family: var(--display) !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  border-radius: 999px !important;
  border: 1.5px solid rgba(42, 33, 23, 0.18) !important;
  background: #FFFDF3 !important;
  background-image: none !important;
  color: #2A2117 !important;
  padding: 12px 26px !important;
  transition: transform .18s, box-shadow .18s, background .18s, border-color .18s;
}
.button:hover, button:hover, .elementor-button:hover, a.btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 22px -14px rgba(42, 33, 23, 0.30);
  border-color: rgba(42, 33, 23, 0.40);
}

/* WooCommerce default buttons left to context-specific rules below. */

/* Primary rainbow button (used on hero + CTAs) */
.btn-rainbow,
.elementor-button--rainbow {
  background: var(--rainbow) !important;
  color: var(--ff-ink) !important;
}

/* Header / nav reskin (Lucille's selectors vary — this hits common ones) */
.site-header,
header.lucille-header,
.main-navigation {
  background: var(--ff-bg) !important;
  border-bottom: 1px solid rgba(42,33,23,0.10);
}
.site-title, .site-description { color: var(--ff-ink) !important; }
nav a, .menu a, .lucille-menu a {
  font-family: var(--display) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.04em;
  color: var(--ff-ink) !important;
}

/* Footer */
.site-footer,
footer.site-footer,
.lucille-footer {
  background: var(--ff-walnut) !important;
  color: var(--ff-cream-soft) !important;
  border-top: 8px solid;
  border-image: var(--rainbow) 1;
}
.site-footer a, .site-footer p { color: rgba(255,253,243,0.78) !important; }
.site-footer a:hover { color: var(--ff-yellow) !important; }

/* WooCommerce account / shop pages */
.woocommerce-MyAccount-navigation a,
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--display) !important;
}
.woocommerce-MyAccount-navigation li.is-active a {
  color: var(--ff-magenta) !important;
}

/* Forms */
input[type=text], input[type=email], input[type=tel], input[type=date],
select, textarea {
  font-family: var(--body) !important;
  border: 2px solid var(--ff-ink) !important;
  border-radius: 10px !important;
  background: var(--ff-cream-soft) !important;
  color: var(--ff-ink) !important;
}

/* ============================================================
   Elementor "flex" font fallback fix
   Lucille's Elementor widgets pass `font-family: flex` to a number
   of elements (heading widget, button, menu link), which the browser
   doesn't recognize and falls back to a generic serif. We pin the
   correct fonts explicitly here so nothing renders as Times New Roman.
   ============================================================ */
.elementor-heading-title,
h1.elementor-heading-title,
h2.elementor-heading-title,
h3.elementor-heading-title,
h4.elementor-heading-title,
h5.elementor-heading-title,
h6.elementor-heading-title {
  font-family: "Coaster Black", "Lilita One", sans-serif !important;
}

/* Buttons — every Elementor + WP variant Lucille might emit */
.elementor-button,
.elementor-button-link,
.elementor-button-text,
a.elementor-button,
button.elementor-button,
.button,
a.button,
input[type=submit],
.lucille-button,
.wp-block-button__link {
  font-family: "Coaster Black", "Lilita One", sans-serif !important;
}

/* Header menu items — readable sans, not the chunky display font */
nav a,
header a,
.main-navigation a,
.menu a,
.menu-item a,
.nav-menu a,
.elementor-nav-menu a,
.elementor-menu a {
  font-family: "Poppins", system-ui, sans-serif !important;
}

/* Page background for non-template pages */
.entry-content, main.site-main {
  background: var(--ff-bg);
}

/* ============================================================
   FREEDOM FAMILY EVENTS — global styles for the Events
   shortcodes [ff_events_upcoming] / [ff_events_past].
   Loads on every page (lives in main style.css) so the
   shortcode looks consistent in Elementor pages too.
   ============================================================ */

.ff-events-grid { display: grid; grid-template-columns: 1fr; gap: 22px; margin: 24px 0; }
@media (min-width: 720px) { .ff-events-grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1100px) { .ff-events-grid--upcoming { grid-template-columns: 1fr; max-width: 880px; margin-left: auto; margin-right: auto; } }
@media (min-width: 1100px) { .ff-events-grid--past { grid-template-columns: repeat(3, 1fr); } }

.ff-event-card { display: flex; flex-direction: column; background: var(--ff-cream-soft, #FFFDF3); border: 1.5px solid rgba(42,33,23,0.10); border-radius: 18px; overflow: hidden; box-shadow: 0 8px 26px -18px rgba(42,33,23,0.25); transition: transform 0.18s, box-shadow 0.18s; }
.ff-event-card:hover { transform: translateY(-2px); box-shadow: 0 14px 32px -18px rgba(42,33,23,0.32); }
@media (min-width: 720px) { .ff-events-grid--upcoming .ff-event-card { flex-direction: row; align-items: stretch; } }

.ff-event-card__media { display: block; flex: 0 0 auto; aspect-ratio: 4/3; background-size: cover; background-position: center; background-color: var(--ff-bg-deep, #EFE7CF); border-bottom: 1.5px solid rgba(42,33,23,0.08); }
@media (min-width: 720px) { .ff-events-grid--upcoming .ff-event-card__media { flex: 0 0 36%; aspect-ratio: auto; border-bottom: none; border-right: 1.5px solid rgba(42,33,23,0.08); min-height: 220px; } }
.ff-event-card__media--placeholder { background-image: linear-gradient(135deg, var(--tint-magenta, #F4DFEC) 0%, var(--tint-yellow, #FBF1CF) 50%, var(--tint-blue, #DBEBF5) 100%); }

.ff-event-card__body { display: grid; grid-template-columns: auto 1fr; gap: 18px; padding: 22px 24px 24px; flex: 1; align-items: start; }
@media (max-width: 540px) { .ff-event-card__body { grid-template-columns: 1fr; gap: 12px; } }

.ff-event-card__date { display: flex; flex-direction: column; align-items: center; justify-content: center; min-width: 70px; padding: 10px 14px; border-radius: 12px; background: var(--rainbow, linear-gradient(90deg, #BC53A1, #E49B66, #F3D979, #31A39B, #49A6D5)); color: var(--ff-ink, #2A2117); text-align: center; line-height: 1; box-shadow: 0 2px 0 rgba(42,33,23,0.10); }
.ff-event-card__date .ff-event-card__month { font-family: "Coaster Black", "Lilita One", sans-serif; font-size: 13px; letter-spacing: 0.10em; text-transform: uppercase; }
.ff-event-card__date .ff-event-card__day { font-family: "Coaster Black", "Lilita One", sans-serif; font-size: 32px; line-height: 1; margin: 2px 0; }
.ff-event-card__date .ff-event-card__year { font-family: "Inter", system-ui, sans-serif; font-size: 11px; opacity: 0.75; letter-spacing: 0.06em; }

.ff-event-card__title { font-family: "Coaster Black", "Lilita One", sans-serif; font-weight: 400 !important; font-size: clamp(22px, 2.2vw, 28px); line-height: 1.05; margin: 0 0 4px; color: var(--ff-ink, #2A2117); letter-spacing: 0.005em; }
.ff-event-card__tagline { font-family: "Inter", sans-serif; font-size: 14.5px; line-height: 1.45; color: var(--ff-muted, #6E5F47); margin: 0 0 10px; }
.ff-event-card__meta { display: flex; flex-wrap: wrap; gap: 4px 12px; margin: 0 0 14px; font-family: "Inter", sans-serif; font-size: 13.5px; color: var(--ff-walnut, #3D2F1E); }
.ff-event-card__meta .ff-event-card__when::after { content: " · "; opacity: 0.5; }
.ff-event-card__meta .ff-event-card__when:last-child::after { content: ""; }
.ff-event-card__where { color: var(--ff-magenta, #BC53A1); font-weight: 500; }

.ff-event-card__actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 6px; }
.ff-event-card__actions .btn, .ff-event-card__actions a.btn { font-family: "Coaster Black", "Lilita One", sans-serif !important; text-transform: uppercase; letter-spacing: 0.06em; font-size: 13px; padding: 9px 18px; border-radius: 999px; text-decoration: none; display: inline-flex; align-items: center; transition: transform 0.12s; }
.ff-event-card__actions .btn:hover { transform: translateY(-1px); }
.ff-event-card__actions .btn-rainbow { background: var(--rainbow, linear-gradient(90deg, #BC53A1, #E49B66, #F3D979, #31A39B, #49A6D5)) !important; color: #2A2117 !important; border: 2px solid #2A2117; }
.ff-event-card__actions .btn-ghost-ink { background: transparent !important; border: 2px solid var(--ff-ink, #2A2117); color: var(--ff-ink, #2A2117) !important; }
.ff-event-card__actions .btn-ghost-ink:hover { background: var(--ff-ink, #2A2117) !important; color: var(--ff-cream-soft, #FFFDF3) !important; }

/* Calendar dropdown */
.ff-cal-dropdown { position: relative; }
.ff-cal-menu { display: none; position: absolute; top: calc(100% + 6px); left: 0; min-width: 200px; margin: 0; padding: 6px; list-style: none; background: var(--ff-cream-soft, #FFFDF3); border: 1.5px solid var(--ff-ink, #2A2117); border-radius: 12px; box-shadow: 0 10px 28px -10px rgba(42,33,23,0.30); z-index: 50; }
.ff-cal-dropdown.is-open .ff-cal-menu { display: block; }
.ff-cal-menu li { margin: 0; }
.ff-cal-menu a { display: block; padding: 9px 14px; border-radius: 8px; color: var(--ff-ink, #2A2117); font-family: "Inter", sans-serif; font-size: 14px; text-decoration: none; }
.ff-cal-menu a:hover { background: var(--ff-bg-deep, #EFE7CF); }

/* Past events */
.ff-events-past { margin-top: 56px; padding-top: 36px; border-top: 1.5px dashed rgba(42,33,23,0.18); }
.ff-events-past__heading { font-family: "Coaster Black", "Lilita One", sans-serif; font-size: 22px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--ff-magenta, #BC53A1); margin: 0 0 18px; }
.ff-event-card.is-past { opacity: 0.92; }
.ff-event-card.is-past .ff-event-card__date { background: var(--ff-bg-deep, #EFE7CF) !important; color: var(--ff-walnut, #3D2F1E) !important; }
.ff-event-card.is-past .ff-event-card__title { font-size: 18px; }
.ff-events-grid--past .ff-event-card { flex-direction: column; }
.ff-events-grid--past .ff-event-card__media { aspect-ratio: 16/10; }
.ff-events-grid--past .ff-event-card__body { padding: 16px 18px 18px; gap: 12px; }
.ff-events-grid--past .ff-event-card__date { min-width: 60px; padding: 6px 10px; }
.ff-events-grid--past .ff-event-card__date .ff-event-card__day { font-size: 22px; }
.ff-events-grid--past .ff-event-card__date .ff-event-card__month { font-size: 11px; }

.ff-events-empty { padding: 40px 24px; text-align: center; color: var(--ff-muted, #6E5F47); font-family: "Inter", sans-serif; font-size: 16px; background: var(--ff-cream, #FCF7E7); border: 1.5px dashed rgba(42,33,23,0.18); border-radius: 14px; }

/* ============================================================
   FREEDOM FAMILY — INJECTED NAV + MOBILE DRAWER
   Works with the wp_body_open injected nav in functions.php.
   Desktop: full inline nav (existing styles).
   Mobile (<880px): collapses to logo + rainbow hamburger,
   tap to slide a cream drawer in from the right.
   ============================================================ */

/* Injected nav: ensure it sits at the top of body even though wp_body_open emits it inside body */
.ff-injected-nav { position: relative; z-index: 100; }

/* Hamburger — hidden on desktop, visible under 880px */
.ff-burger { display: none; background: transparent; border: 0; cursor: pointer; padding: 6px; width: 42px; height: 42px; position: relative; }
.ff-burger__line { display: block; width: 26px; height: 3px; border-radius: 999px; margin: 5px auto; transition: transform 0.32s, opacity 0.18s, background 0.18s; }
.ff-burger__line--1 { background: #BC53A1; }
.ff-burger__line--2 { background: #F3D979; }
.ff-burger__line--3 { background: #31A39B; }
.ff-burger:hover .ff-burger__line { background: #2A2117; }
/* When drawer open, hamburger becomes X (and turns ink) */
body.ff-drawer-open .ff-burger__line { background: #2A2117; }
body.ff-drawer-open .ff-burger__line--1 { transform: translateY(8px) rotate(45deg); }
body.ff-drawer-open .ff-burger__line--2 { opacity: 0; }
body.ff-drawer-open .ff-burger__line--3 { transform: translateY(-8px) rotate(-45deg); }

/* Drawer panel — slides from the right */
.ff-drawer { position: fixed; top: 0; right: -480px; width: min(86vw, 420px); height: 100vh; background: #FFFDF3; z-index: 200; transition: right 0.34s cubic-bezier(.2,.8,.2,1); box-shadow: -16px 0 60px -20px rgba(42,33,23,0.28); display: flex; flex-direction: column; overflow-y: auto; }
.ff-drawer::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 6px; background: linear-gradient(180deg, #BC53A1 0%, #E49B66 25%, #F3D979 50%, #31A39B 75%, #49A6D5 100%); }
body.ff-drawer-open .ff-drawer { right: 0 !important; }

.ff-drawer__inner { padding: 24px 28px 32px 36px; flex: 1; display: flex; flex-direction: column; }
.ff-drawer__brand { display: block; margin-bottom: 32px; padding-top: 8px; }
.ff-drawer__brand img { height: 64px; width: auto; }

.ff-drawer__menu { list-style: none; margin: 0 0 28px; padding: 0; }
.ff-drawer__item { margin: 0; }
.ff-drawer__item a { display: block; font-family: "Coaster Black", "Lilita One", sans-serif !important; font-size: 36px; line-height: 1.05; letter-spacing: 0.01em; text-transform: uppercase; color: #2A2117; text-decoration: none; padding: 10px 0; border-bottom: 1px dashed rgba(42,33,23,0.10); transition: color 0.22s, transform 0.22s, padding-left 0.22s; }
.ff-drawer__item:last-child a { border-bottom: none; }
.ff-drawer__item a:hover, .ff-drawer__item a:focus { padding-left: 8px; }
/* Rainbow hover colors per item */
.ff-drawer__item.ff-c-magenta a:hover, .ff-drawer__item.ff-c-magenta a:focus { color: #BC53A1; }
.ff-drawer__item.ff-c-coral a:hover,   .ff-drawer__item.ff-c-coral a:focus   { color: #E49B66; }
.ff-drawer__item.ff-c-yellow a:hover,  .ff-drawer__item.ff-c-yellow a:focus  { color: #C9A91A; }
.ff-drawer__item.ff-c-teal a:hover,    .ff-drawer__item.ff-c-teal a:focus    { color: #31A39B; }
.ff-drawer__item.ff-c-blue a:hover,    .ff-drawer__item.ff-c-blue a:focus    { color: #49A6D5; }

/* Booking CTA pill at bottom of drawer */
.ff-drawer__cta { display: inline-block; align-self: flex-start; margin: 0 0 24px; padding: 12px 26px; background: linear-gradient(90deg, #BC53A1 0%, #E49B66 25%, #F3D979 50%, #31A39B 75%, #49A6D5 100%); color: #2A2117 !important; font-family: "Coaster Black", "Lilita One", sans-serif !important; text-transform: uppercase; letter-spacing: 0.06em; font-size: 14px; border: 2px solid #2A2117; border-radius: 999px; text-decoration: none; transition: transform 0.18s, box-shadow 0.18s; }
.ff-drawer__cta:hover { transform: translateY(-2px); box-shadow: 0 8px 20px -10px rgba(42,33,23,0.45); }

.ff-drawer__socials { display: flex; gap: 14px; margin: 0 0 18px; }
.ff-drawer__socials a { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 999px; border: 1.5px solid #2A2117; color: #2A2117; font-family: "Coaster Black", "Lilita One", sans-serif; font-size: 13px; letter-spacing: 0.02em; text-decoration: none; transition: background 0.18s, color 0.18s; }
.ff-drawer__socials a:hover { background: #2A2117; color: #FFFDF3; }

.ff-drawer__signoff { font-family: "Inter", sans-serif; font-style: italic; font-size: 13px; color: #6E5F47; margin: auto 0 0; padding-top: 12px; border-top: 1px solid rgba(42,33,23,0.10); }

/* Scrim behind drawer */
.ff-drawer-scrim { position: fixed; inset: 0; background: rgba(42,33,23,0.45); z-index: 150; opacity: 0; pointer-events: none; transition: opacity 0.28s; }
body.ff-drawer-open .ff-drawer-scrim { opacity: 1; pointer-events: auto; }

/* Lock body scroll when drawer open */
body.ff-drawer-open { overflow: hidden; }

/* Mobile breakpoint */
@media (max-width: 880px) {
  nav.site .left, nav.site .right { display: none !important; }
  nav.site .ff-burger { display: block; position: absolute; right: 18px; top: 50%; transform: translateY(-50%); }
  nav.site .inner { position: relative; grid-template-columns: 1fr !important; justify-items: center; padding: 14px 18px !important; }
  nav.site .brand img { height: 64px !important; }
}
@media (min-width: 881px) {
  .ff-drawer, .ff-drawer-scrim, .ff-burger { display: none !important; }
}

/* FORCE-HIDE injected nav (still rendering from cache) */
nav.ff-injected-nav, .ff-injected-nav { display: none !important; }

/* SAFARI-PROOF event card overrides — explicit values, no CSS vars,
   handles Elementor/Safari edge cases where vars or display:none get suppressed. */
.ff-event-card__title { color: #2A2117 !important; background: none !important; -webkit-background-clip: initial !important; -webkit-text-fill-color: #2A2117 !important; }
.ff-event-card__tagline { color: #6E5F47 !important; }
.ff-event-card__where { color: #BC53A1 !important; }
.ff-event-card__date { background: linear-gradient(90deg, #BC53A1 0%, #E49B66 25%, #F3D979 50%, #31A39B 75%, #49A6D5 100%) !important; color: #2A2117 !important; }
.ff-event-card__date .ff-event-card__month, .ff-event-card__date .ff-event-card__day, .ff-event-card__date .ff-event-card__year { color: #2A2117 !important; }
.ff-event-card { background: #FFFDF3 !important; border: 1.5px solid rgba(42,33,23,0.10) !important; border-radius: 18px !important; }
.ff-cal-menu { display: none !important; list-style: none !important; }
.ff-cal-dropdown.is-open .ff-cal-menu { display: block !important; }
.ff-cal-menu li { list-style: none !important; }

/* SAFARI-LAYOUT-FIX — bullet-proof event card layout (no grid, no aspect-ratio).
   Forces flex layout that renders consistently across browsers. */
.ff-event-card { display: flex !important; flex-direction: column !important; background: #FFFDF3 !important; border: 1.5px solid rgba(42,33,23,0.10) !important; border-radius: 18px !important; overflow: hidden !important; }
@media (min-width: 720px) { .ff-events-grid--upcoming .ff-event-card { flex-direction: row !important; align-items: stretch !important; } }
.ff-event-card__media { display: block !important; flex: 0 0 auto !important; min-height: 220px !important; background-size: cover !important; background-position: center !important; background-color: #EFE7CF !important; }
@media (min-width: 720px) { .ff-events-grid--upcoming .ff-event-card__media { flex: 0 0 36% !important; min-height: 220px !important; } }
.ff-event-card__body { display: flex !important; flex-direction: row !important; gap: 18px !important; padding: 22px 24px 24px !important; flex: 1 !important; align-items: flex-start !important; }
@media (max-width: 540px) { .ff-event-card__body { flex-direction: column !important; gap: 12px !important; } }
.ff-event-card__date { display: flex !important; flex-direction: column !important; align-items: center !important; justify-content: center !important; min-width: 70px !important; padding: 10px 14px !important; border-radius: 12px !important; line-height: 1 !important; flex-shrink: 0 !important; }
.ff-event-card__main { flex: 1 !important; min-width: 0 !important; }
.ff-event-card__title { display: block !important; }


/* --- /music/ page Elementor HTML widgets — beat parent theme h1-h6 rule */
h1.ff-music-hero__title, h2.ff-disco__title, h2.ff-collabs__title, h2.ff-listen__title, h2.ff-buy__title, .ff-music-hero__title, .ff-disco__title, .ff-collabs__title, .ff-listen__title, .ff-buy__title { font-family: "Coaster Black", "Lilita One", sans-serif !important; font-weight: 400 !important; }
.ff-music-featured__eyebrow, .ff-music-hero__eyebrow, .ff-disco__eyebrow, .ff-collabs__eyebrow, .ff-listen__eyebrow, .ff-buy__eyebrow, .ff-buy__status-label, .ff-buy__name, .ff-buy__soon, .ff-listen__name, .ff-listen__stat strong { font-family: "Coaster Black", "Lilita One", sans-serif !important; }


/* SITEWIDE HEADER POLISH v2 — scoped to inner container only */
header.elementor-location-header .e-con.e-parent{position:relative;}
header.elementor-location-header .e-con.e-parent::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#BC53A1 0%,#E49B66 25%,#F3D979 50%,#31A39B 75%,#49A6D5 100%);z-index:5;pointer-events:none;}
header.elementor-location-header .e-con.e-parent::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1.5px;background:rgba(42,33,23,0.12);pointer-events:none;}
header.elementor-location-header .elementor-nav-menu a,header.elementor-location-header .menu-item a{font-family:"Coaster Black","Lilita One",sans-serif !important;font-weight:400 !important;font-size:14px !important;letter-spacing:0.14em !important;text-transform:uppercase !important;color:#2A2117 !important;position:relative;padding-bottom:4px;background-image:none !important;transition:color .2s;}
header.elementor-location-header .elementor-nav-menu li > a::after{content:"";position:absolute;left:50%;right:50%;bottom:-2px;height:2.5px;background:linear-gradient(90deg,#BC53A1 0%,#E49B66 25%,#F3D979 50%,#31A39B 75%,#49A6D5 100%);transition:left .22s ease,right .22s ease;border-radius:2px;}
header.elementor-location-header .elementor-nav-menu li > a:hover::after,header.elementor-location-header .elementor-nav-menu li.current-menu-item > a::after{left:0;right:0;}
header.elementor-location-header .elementor-nav-menu li > a:hover,header.elementor-location-header .elementor-nav-menu li.current-menu-item > a{color:#BC53A1 !important;}
header.elementor-location-header img{transition:transform .25s ease;}
header.elementor-location-header a:hover img{transform:translateY(-2px) rotate(-1.5deg);}

/* Hide Lucille auto-injected share icons */
.lc_sharing_icons{display:none !important;}

/* WOOCOMMERCE SHOP — brand polish */
.ff-shop-hero{background:linear-gradient(180deg,#FCF7E7 0%,#F7F1E0 100%);padding:80px 24px 48px;text-align:center;margin:-32px 0 32px;position:relative;overflow:hidden;}@media (max-width:760px){.ff-shop-hero{padding:56px 18px 32px;margin:-16px 0 24px;}.ff-shop-hero__title{font-size:clamp(34px,10vw,56px) !important;}}html,body{overflow-x:hidden;}
.ff-shop-hero::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:linear-gradient(90deg,#BC53A1 0%,#E49B66 25%,#F3D979 50%,#31A39B 75%,#49A6D5 100%);}
.ff-shop-hero__inner{max-width:760px;margin:0 auto;}
.ff-shop-hero__eyebrow{font-family:"Coaster Black","Lilita One",sans-serif;font-size:13px;letter-spacing:0.16em;text-transform:uppercase;color:#BC53A1;margin:0 0 16px;}
.ff-shop-hero__title{font-family:"Coaster Black","Lilita One",sans-serif !important;font-weight:400 !important;font-size:clamp(48px,7vw,88px) !important;line-height:0.95 !important;color:#2A2117 !important;margin:0 0 18px !important;}
.ff-shop-hero__lede{font-family:"Inter",system-ui,sans-serif;font-size:clamp(15px,1.5vw,17.5px);line-height:1.55;color:#3D2F1E;max-width:580px;margin:0 auto;}
body.woocommerce ul.products,body.woocommerce-page ul.products{display:grid !important;grid-template-columns:repeat(auto-fit,minmax(260px,1fr)) !important;gap:22px !important;padding:0 !important;margin:0 !important;list-style:none !important;}
body.woocommerce ul.products li.product,body.woocommerce-page ul.products li.product{background:#FFFDF3;border:1.5px solid rgba(42,33,23,0.12);border-radius:22px;padding:18px 18px 22px !important;margin:0 !important;width:auto !important;float:none !important;text-align:center;transition:transform .18s,box-shadow .18s,border-color .18s;display:flex;flex-direction:column;gap:8px;}
body.woocommerce ul.products li.product:hover{transform:translateY(-3px);box-shadow:0 18px 36px -22px rgba(42,33,23,0.30);border-color:rgba(42,33,23,0.25);}
body.woocommerce ul.products li.product .woocommerce-loop-product__link{display:block;text-decoration:none !important;}
body.woocommerce ul.products li.product img{border-radius:14px;background:#F7F1E0;margin-bottom:12px !important;}
body.woocommerce ul.products li.product .woocommerce-loop-product__title{font-family:"Coaster Black","Lilita One",sans-serif !important;font-weight:400 !important;font-size:15px !important;letter-spacing:0.04em !important;text-transform:uppercase !important;color:#2A2117 !important;line-height:1.25 !important;padding:0 !important;margin:0 0 4px !important;}
body.woocommerce ul.products li.product .price{font-family:"Inter",system-ui,sans-serif !important;font-size:16px !important;font-weight:600 !important;color:#BC53A1 !important;margin:0 !important;}
body.woocommerce ul.products li.product .price del{color:#6E5F47 !important;opacity:0.7;}
body.woocommerce ul.products li.product .price ins{background:transparent !important;text-decoration:none !important;}
body.woocommerce ul.products li.product .button,body.woocommerce a.button,body.woocommerce button.button,body.woocommerce-page a.button,body.woocommerce input.button,body.woocommerce .single_add_to_cart_button{display:inline-flex !important;align-items:center;justify-content:center;font-family:"Coaster Black","Lilita One",sans-serif !important;font-weight:400 !important;font-size:13px !important;letter-spacing:0.08em !important;text-transform:uppercase !important;padding:12px 26px !important;border-radius:999px !important;background:linear-gradient(90deg,#BC53A1 0%,#E49B66 25%,#F3D979 50%,#31A39B 75%,#49A6D5 100%) !important;border:2px solid #2A2117 !important;color:#2A2117 !important;text-decoration:none !important;cursor:pointer;transition:transform .18s,box-shadow .18s !important;margin-top:auto !important;align-self:center;}
body.woocommerce ul.products li.product .button:hover,body.woocommerce a.button:hover,body.woocommerce button.button:hover,body.woocommerce .single_add_to_cart_button:hover{transform:translateY(-2px);box-shadow:0 12px 24px -14px rgba(42,33,23,0.40) !important;}
body.woocommerce ul.products li.product .added_to_cart{display:inline-block !important;margin-top:10px !important;padding:6px 14px !important;font-size:11px !important;background:#F3D979 !important;color:#2A2117 !important;border-radius:999px !important;font-family:"Coaster Black","Lilita One",sans-serif !important;letter-spacing:0.06em;}
body.woocommerce div.product .product_title{font-family:"Coaster Black","Lilita One",sans-serif !important;font-weight:400 !important;font-size:clamp(32px,4vw,48px) !important;line-height:1.05 !important;color:#2A2117 !important;margin:0 0 18px !important;}
body.woocommerce div.product p.price,body.woocommerce div.product span.price{font-family:"Inter",system-ui,sans-serif !important;font-size:26px !important;font-weight:700 !important;color:#BC53A1 !important;margin:0 0 24px !important;}
body.woocommerce div.product .woocommerce-product-details__short-description,body.woocommerce div.product .woocommerce-Tabs-panel{font-family:"Inter",system-ui,sans-serif !important;font-size:16px !important;line-height:1.6 !important;color:#3D2F1E !important;}
body.woocommerce table.variations{border:0 !important;}
body.woocommerce table.variations tr,body.woocommerce table.variations td{display:block !important;padding:0 !important;border:0 !important;}
body.woocommerce table.variations label{font-family:"Coaster Black","Lilita One",sans-serif !important;font-size:11px !important;letter-spacing:0.10em !important;text-transform:uppercase !important;color:#2A2117 !important;display:block !important;margin:12px 0 6px !important;}
body.woocommerce select,body.woocommerce input[type="text"],body.woocommerce input[type="email"],body.woocommerce input[type="tel"],body.woocommerce input[type="number"],body.woocommerce textarea{background:#FCF7E7 !important;border:2px solid #2A2117 !important;border-radius:12px !important;padding:12px 14px !important;font-family:"Inter",system-ui,sans-serif !important;font-size:15px !important;color:#2A2117 !important;transition:border-color .18s,box-shadow .18s;appearance:none;-webkit-appearance:none;}
body.woocommerce select:focus,body.woocommerce input:focus,body.woocommerce textarea:focus{outline:none !important;border-color:#BC53A1 !important;box-shadow:0 0 0 4px rgba(188,83,161,0.18) !important;}
body.woocommerce .reset_variations{font-family:"Coaster Black","Lilita One",sans-serif !important;font-size:11px !important;letter-spacing:0.10em !important;text-transform:uppercase !important;color:#BC53A1 !important;margin-left:14px !important;text-decoration:none !important;}
body.woocommerce .quantity .qty{width:70px !important;text-align:center !important;}
body.woocommerce div.product .woocommerce-tabs ul.tabs li{background:#FCF7E7 !important;border:1.5px solid rgba(42,33,23,0.15) !important;border-radius:999px !important;padding:0 !important;margin:0 6px 0 0 !important;}
body.woocommerce div.product .woocommerce-tabs ul.tabs li.active{background:#FFFDF3 !important;border-color:#2A2117 !important;}
body.woocommerce div.product .woocommerce-tabs ul.tabs li a{font-family:"Coaster Black","Lilita One",sans-serif !important;font-size:12px !important;letter-spacing:0.10em !important;text-transform:uppercase !important;color:#2A2117 !important;padding:10px 20px !important;}
body.woocommerce .woocommerce-message,body.woocommerce .woocommerce-info,body.woocommerce .woocommerce-error{background:#FFFDF3 !important;border-left:4px solid #BC53A1 !important;border-radius:12px !important;padding:16px 22px !important;font-family:"Inter",system-ui,sans-serif !important;font-size:14.5px !important;color:#2A2117 !important;}

.lb_swp_downlod{display:none !important;}

/* MOBILE HEADER — hamburger + slide-in drawer */
@media (max-width:760px){header.elementor-location-header .elementor-nav-menu,header.elementor-location-header .elementor-widget-nav-menu .elementor-nav-menu--main{display:none !important;}header.elementor-location-header .e-con.e-parent{position:relative !important;padding:14px 18px !important;}}
.ff-mh-burger{display:none;position:relative;width:44px;height:44px;border-radius:12px;background:#FFFDF3;border:2px solid #2A2117;cursor:pointer;padding:0;z-index:110;flex:none;transition:transform .2s,background .2s;}
.ff-mh-burger:hover{transform:translateY(-1px);}
.ff-mh-burger__lines{position:absolute;top:50%;left:50%;width:22px;height:14px;transform:translate(-50%,-50%);}
.ff-mh-burger__lines span{display:block;height:2.5px;border-radius:2px;margin:3px 0;background:linear-gradient(90deg,#BC53A1 0%,#E49B66 25%,#F3D979 50%,#31A39B 75%,#49A6D5 100%);transition:transform .25s,opacity .2s;transform-origin:center;}
.ff-mh-burger.is-open .ff-mh-burger__lines span:nth-child(1){transform:translateY(5.5px) rotate(45deg);}
.ff-mh-burger.is-open .ff-mh-burger__lines span:nth-child(2){opacity:0;}
.ff-mh-burger.is-open .ff-mh-burger__lines span:nth-child(3){transform:translateY(-5.5px) rotate(-45deg);}
@media (max-width:760px){.ff-mh-burger{display:block;position:absolute !important;right:16px;top:50%;transform:translateY(-50%);z-index:50;}.ff-mh-burger:hover{transform:translateY(calc(-50% - 1px));}}
.ff-mh-drawer{position:fixed;top:0;right:0;bottom:0;width:min(86vw,360px);background:#FCF7E7;z-index:999;transform:translateX(100%);transition:transform .3s cubic-bezier(0.16,1,0.3,1);display:flex;flex-direction:column;padding:70px 28px 32px;overflow-y:auto;box-shadow:-18px 0 40px -16px rgba(42,33,23,0.30);}
.ff-mh-drawer::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#BC53A1 0%,#E49B66 25%,#F3D979 50%,#31A39B 75%,#49A6D5 100%);}
.ff-mh-drawer.is-open{transform:translateX(0);}
.ff-mh-overlay{position:fixed;inset:0;background:rgba(42,33,23,0.40);z-index:998;opacity:0;pointer-events:none;transition:opacity .3s;}
.ff-mh-overlay.is-open{opacity:1;pointer-events:auto;}
.ff-mh-drawer__nav{display:flex;flex-direction:column;gap:4px;margin:0 0 28px;}
.ff-mh-drawer__nav a{display:block;font-family:"Coaster Black","Lilita One",sans-serif;font-weight:400;font-size:22px;letter-spacing:0.05em;text-transform:uppercase;color:#2A2117;text-decoration:none;padding:10px 0;border-bottom:1.5px dashed rgba(42,33,23,0.18);transition:color .18s,padding-left .18s;}
.ff-mh-drawer__nav a:last-child{border-bottom:0;}
.ff-mh-drawer__nav a:hover,.ff-mh-drawer__nav a.is-active{color:#BC53A1;padding-left:6px;}
.ff-mh-drawer__cta{display:inline-flex;align-items:center;justify-content:center;padding:14px 28px;border-radius:999px;background:linear-gradient(90deg,#BC53A1 0%,#E49B66 25%,#F3D979 50%,#31A39B 75%,#49A6D5 100%);border:2px solid #2A2117;color:#2A2117;font-family:"Coaster Black","Lilita One",sans-serif;font-size:14px;letter-spacing:0.08em;text-transform:uppercase;text-decoration:none;margin:0 0 24px;}
.ff-mh-drawer__socials{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:24px;border-top:1.5px dashed rgba(42,33,23,0.18);}
.ff-mh-drawer__soc{width:36px;height:36px;border-radius:10px;background:#2A2117 center/20px 20px no-repeat;display:block;transition:transform .18s;}
.ff-mh-drawer__soc:hover{transform:translateY(-2px);}
.ff-mh-drawer__soc--spotify{background-image:url(https://cdn.simpleicons.org/spotify/FFFDF3);}
.ff-mh-drawer__soc--applemusic{background-image:url(https://cdn.simpleicons.org/applemusic/FFFDF3);}
.ff-mh-drawer__soc--youtube{background-image:url(https://cdn.simpleicons.org/youtube/FFFDF3);}
.ff-mh-drawer__soc--instagram{background-image:url(https://cdn.simpleicons.org/instagram/FFFDF3);}
.ff-mh-drawer__soc--bandcamp{background-image:url(https://cdn.simpleicons.org/bandcamp/FFFDF3);}

/* EPK hero — clear sticky header on mobile */
@media (max-width:760px) { body section.epk, body.freedomfam-epk section.epk { padding-top: 120px !important; padding-left: 18px !important; padding-right: 18px !important; padding-bottom: 56px !important; } body section.epk h2 { font-size: clamp(34px, 11vw, 52px) !important; line-height: 1.05 !important; margin-top: 0 !important; } body section.epk .lede { font-size: 15px !important; padding: 0 4px !important; } }

/* Hero text shadow — keep tagline legible over busy photo */
section.hero .tagline { text-shadow: 0 2px 18px rgba(0,0,0,0.35), 0 1px 4px rgba(0,0,0,0.25); }
section.hero .tagline .accent { text-shadow: none; }

/* Offer card mobile fit — shrink title to fit narrower body column */
@media (max-width:760px) { .offer-card h3 { font-size: 22px !important; line-height: 1.1 !important; word-break: break-word; hyphens: auto; } .offer-card .body { padding: 22px !important; gap: 8px !important; } .offer-card .body p { font-size: 14.5px !important; line-height: 1.5 !important; } }
@media (max-width:480px) { .offer-card h3 { font-size: 20px !important; } .offer-card .body { padding: 20px !important; } }

/* Single product gallery mobile — compact thumbnails so title + add-to-cart are above the fold */
@media (max-width:760px) {
  body.single-product .woocommerce-product-gallery { display: flex !important; flex-wrap: wrap !important; gap: 6px !important; }
  body.single-product .woocommerce-product-gallery__image:first-child { width: 100% !important; flex: 1 1 100% !important; margin: 0 0 10px !important; }
  body.single-product .woocommerce-product-gallery__image:not(:first-child) { width: calc(25% - 5px) !important; max-width: 90px !important; margin: 0 !important; }
  body.single-product .woocommerce-product-gallery__image:not(:first-child) img { width: 100% !important; height: 80px !important; object-fit: cover !important; border-radius: 8px; }
  body.single-product .woocommerce-product-gallery__image:nth-child(n+10) { display: none !important; }
}

/* Product description tabs — branded panel + mobile-safe tables */
body.single-product .woocommerce-tabs { margin-top: 32px; }
body.single-product .woocommerce-Tabs-panel { background: #FCF7E7; border-radius: 18px; padding: 28px; border: 1.5px solid rgba(42,33,23,0.12); margin-top: 12px; }
body.single-product .woocommerce-Tabs-panel h2 { font-family: "Coaster Black","Lilita One",sans-serif !important; font-weight: 400 !important; font-size: 22px !important; letter-spacing: 0.04em !important; color: #2A2117 !important; margin: 0 0 16px !important; text-transform: uppercase !important; }
body.single-product .woocommerce-Tabs-panel p { font-family: "Inter", system-ui, sans-serif !important; font-size: 15px !important; line-height: 1.65 !important; color: #3D2F1E !important; margin: 0 0 14px !important; }
body.single-product .woocommerce-Tabs-panel ul, body.single-product .woocommerce-Tabs-panel ol { margin: 0 0 16px 18px; padding: 0; }
body.single-product .woocommerce-Tabs-panel ul li, body.single-product .woocommerce-Tabs-panel ol li { font-family: "Inter", system-ui, sans-serif; font-size: 15px; line-height: 1.6; color: #3D2F1E; margin: 0 0 6px; }
/* Tables — wrap in a horizontal-scroll container so they never overflow on mobile */
body.single-product .woocommerce-Tabs-panel { overflow-x: auto; -webkit-overflow-scrolling: touch; }
body.single-product .woocommerce-Tabs-panel table { display: table !important; width: 100% !important; min-width: 480px !important; border-collapse: collapse !important; margin: 16px 0 !important; background: #FFFDF3 !important; border-radius: 12px !important; border: 1.5px solid rgba(42,33,23,0.18) !important; }

body.single-product .woocommerce-Tabs-panel table th, body.single-product .woocommerce-Tabs-panel table td { padding: 10px 14px !important; border-bottom: 1px solid rgba(42,33,23,0.10) !important; text-align: left !important; font-family: "Inter", system-ui, sans-serif !important; font-size: 14px !important; color: #3D2F1E !important; white-space: nowrap; }
body.single-product .woocommerce-Tabs-panel table thead th { background: rgba(243,217,121,0.18) !important; border-bottom: 2px solid #2A2117 !important; font-family: "Coaster Black","Lilita One",sans-serif !important; font-weight: 400 !important; font-size: 12px !important; letter-spacing: 0.10em !important; text-transform: uppercase !important; color: #2A2117 !important; }
body.single-product .woocommerce-Tabs-panel table tbody tr:last-child td { border-bottom: 0 !important; }
@media (max-width: 760px) { body.single-product .woocommerce-Tabs-panel { padding: 20px 16px !important; border-radius: 14px; } body.single-product .woocommerce-Tabs-panel h2 { font-size: 19px !important; } body.single-product .woocommerce-Tabs-panel p, body.single-product .woocommerce-Tabs-panel ul li { font-size: 14.5px !important; } }

/* Single product clear header — push content below sticky header so title is visible */
body.single-product .lc_content_full { padding-top: 120px !important; }
@media (max-width: 760px) { body.single-product .lc_content_full { padding-top: 100px !important; } }

/* WooCommerce account branding — full FFB skin for /my-account/, /cart/, /checkout/, /order-received/ */
/* Page-level: push content below header on all WC pages, give a cream container background */
body.woocommerce-account .lc_content_full,
body.woocommerce-cart .lc_content_full,
body.woocommerce-checkout .lc_content_full,
body.woocommerce-order-received .lc_content_full { padding-top: 100px !important; padding-bottom: 60px !important; }
@media (max-width: 760px) { body.woocommerce-account .lc_content_full, body.woocommerce-cart .lc_content_full, body.woocommerce-checkout .lc_content_full, body.woocommerce-order-received .lc_content_full { padding-top: 90px !important; } }

/* Page title (h1 above WC content) */
body.woocommerce-account .entry-title,
body.woocommerce-cart .entry-title,
body.woocommerce-checkout .entry-title { font-family: "Coaster Black","Lilita One",sans-serif !important; font-weight: 400 !important; font-size: clamp(38px, 5vw, 64px) !important; color: #2A2117 !important; margin: 0 0 28px !important; text-transform: none !important; line-height: 0.95 !important; }

/* Generic WC headings */
.woocommerce h2, .woocommerce h3, .woocommerce h4 { font-family: "Coaster Black","Lilita One",sans-serif !important; font-weight: 400 !important; color: #2A2117 !important; letter-spacing: 0.02em; }
.woocommerce p, .woocommerce label, .woocommerce td, .woocommerce th { font-family: "Inter", system-ui, sans-serif; color: #3D2F1E; }

/* WC notice messages (success/info/error) — branded pills */
.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-notice { background: #FFFDF3 !important; border: 1.5px solid #2A2117 !important; border-radius: 14px !important; padding: 16px 20px !important; color: #2A2117 !important; font-family: "Inter", system-ui, sans-serif !important; font-size: 15px !important; margin: 0 0 22px !important; }
.woocommerce-message { border-left: 6px solid #31A39B !important; }
.woocommerce-info { border-left: 6px solid #49A6D5 !important; }
.woocommerce-error { border-left: 6px solid #BC53A1 !important; }
.woocommerce-message::before, .woocommerce-info::before, .woocommerce-error::before { color: #2A2117 !important; }

/* My Account layout */
.woocommerce-account .woocommerce { display: grid !important; grid-template-columns: 240px 1fr; gap: 32px; max-width: 1100px; margin: 0 auto; }
@media (max-width: 760px) { .woocommerce-account .woocommerce { grid-template-columns: 1fr; gap: 18px; } }

/* Sidebar nav */
.woocommerce-MyAccount-navigation { background: #FFFDF3 !important; border: 1.5px solid rgba(42,33,23,0.12) !important; border-radius: 18px !important; padding: 14px !important; align-self: start; }
.woocommerce-MyAccount-navigation ul { list-style: none !important; margin: 0 !important; padding: 0 !important; }
.woocommerce-MyAccount-navigation ul li { margin: 0 !important; padding: 0 !important; border-bottom: 1px dashed rgba(42,33,23,0.12); }
.woocommerce-MyAccount-navigation ul li:last-child { border-bottom: 0; }
.woocommerce-MyAccount-navigation ul li a { display: block !important; padding: 12px 14px !important; font-family: "Coaster Black","Lilita One",sans-serif !important; font-size: 13px !important; letter-spacing: 0.10em !important; text-transform: uppercase !important; color: #2A2117 !important; text-decoration: none !important; border-radius: 12px; transition: background .18s, color .18s; }
.woocommerce-MyAccount-navigation ul li a:hover { background: rgba(243,217,121,0.30) !important; color: #BC53A1 !important; }
.woocommerce-MyAccount-navigation ul li.is-active a { background: linear-gradient(90deg, #BC53A1 0%, #E49B66 35%, #F3D979 60%, #31A39B 100%) !important; color: #FFFDF3 !important; }

/* My Account content panel */
.woocommerce-MyAccount-content { background: #FCF7E7; border: 1.5px solid rgba(42,33,23,0.12); border-radius: 18px; padding: 32px; }
@media (max-width: 760px) { .woocommerce-MyAccount-content { padding: 22px; border-radius: 14px; } }
.woocommerce-MyAccount-content p { font-size: 15.5px; line-height: 1.65; }
.woocommerce-MyAccount-content a { color: #BC53A1; text-decoration: none; border-bottom: 1.5px solid rgba(188,83,161,0.25); }
.woocommerce-MyAccount-content a:hover { color: #E49B66; border-bottom-color: #E49B66; }

/* Login + Register forms */
.woocommerce-account .u-columns, .woocommerce-account .u-column1, .woocommerce-account .u-column2 { width: 100%; }
.woocommerce-account form.woocommerce-form-login,
.woocommerce-account form.woocommerce-form-register { background: #FCF7E7 !important; border: 1.5px solid rgba(42,33,23,0.12) !important; border-radius: 18px !important; padding: 32px !important; max-width: 480px; margin: 0 auto 24px !important; }
.woocommerce-account .u-columns .col-1, .woocommerce-account .u-columns .col-2 { background: transparent !important; padding: 0 !important; box-shadow: none !important; }

/* WC inputs */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select { background: #FFFDF3 !important; border: 1.5px solid #2A2117 !important; border-radius: 999px !important; padding: 12px 18px !important; font-family: "Inter", system-ui, sans-serif !important; font-size: 15px !important; color: #2A2117 !important; width: 100% !important; box-shadow: none !important; }
.woocommerce form .form-row textarea { border-radius: 16px !important; min-height: 100px; }
.woocommerce form .form-row select2-selection,
.woocommerce form .form-row .select2-selection { border-radius: 999px !important; border: 1.5px solid #2A2117 !important; height: auto !important; padding: 6px 14px !important; }
.woocommerce form .form-row label { font-family: "Coaster Black","Lilita One",sans-serif !important; font-size: 12px !important; letter-spacing: 0.10em !important; text-transform: uppercase !important; color: #2A2117 !important; margin-bottom: 6px !important; }
.woocommerce form .form-row { margin-bottom: 16px !important; }
.woocommerce form .password-input { width: 100%; }

/* WC buttons (rainbow primary, outline secondary) */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce-page a.button, .woocommerce-page button.button, .woocommerce-page input.button { background: linear-gradient(90deg, #BC53A1 0%, #E49B66 25%, #F3D979 50%, #31A39B 75%, #49A6D5 100%) !important; color: #2A2117 !important; border: 2px solid #2A2117 !important; border-radius: 999px !important; padding: 12px 28px !important; font-family: "Coaster Black","Lilita One",sans-serif !important; font-size: 13px !important; letter-spacing: 0.08em !important; text-transform: uppercase !important; text-decoration: none !important; transition: transform .18s, box-shadow .18s !important; }
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover { transform: translateY(-2px); box-shadow: 0 14px 28px -14px rgba(42,33,23,0.40) !important; }
.woocommerce-account .woocommerce-Address .edit, .woocommerce-account a.button.alt { background: #FFFDF3 !important; }

/* Orders + table */
.woocommerce-orders-table, .shop_table, .cart, .cart_totals table, .woocommerce-checkout-review-order-table { background: #FFFDF3 !important; border: 1.5px solid rgba(42,33,23,0.18) !important; border-radius: 14px !important; border-collapse: separate !important; border-spacing: 0 !important; overflow: hidden; width: 100% !important; }
.woocommerce-orders-table th, .shop_table th, .cart_totals table th { background: rgba(243,217,121,0.18) !important; color: #2A2117 !important; font-family: "Coaster Black","Lilita One",sans-serif !important; font-size: 12px !important; letter-spacing: 0.10em !important; text-transform: uppercase !important; font-weight: 400 !important; padding: 12px 16px !important; border-bottom: 2px solid #2A2117 !important; }
.woocommerce-orders-table td, .shop_table td, .cart_totals table td { padding: 14px 16px !important; border-bottom: 1px solid rgba(42,33,23,0.10) !important; vertical-align: middle !important; }
.woocommerce-orders-table tr:last-child td, .cart_totals table tr:last-child td { border-bottom: 0 !important; }

/* Addresses */
.woocommerce-Addresses .woocommerce-Address { background: #FFFDF3; border: 1.5px solid rgba(42,33,23,0.18); border-radius: 18px; padding: 22px; }
.woocommerce-Addresses .woocommerce-Address-title h3 { font-size: 18px !important; margin: 0 0 12px !important; text-transform: uppercase !important; letter-spacing: 0.04em; }
.woocommerce-Addresses .woocommerce-Address-title .edit { font-family: "Coaster Black","Lilita One",sans-serif !important; font-size: 11px !important; letter-spacing: 0.10em !important; text-transform: uppercase !important; padding: 8px 16px !important; }
.woocommerce-Addresses address { font-family: "Inter", system-ui, sans-serif; font-size: 14.5px; line-height: 1.7; color: #3D2F1E; }

/* Cart specifics */
body.woocommerce-cart .woocommerce { max-width: 1100px; margin: 0 auto; }
.cart_totals { background: #FCF7E7; border: 1.5px solid rgba(42,33,23,0.12); border-radius: 18px; padding: 28px; margin-top: 22px; }
.cart_totals h2 { font-size: 22px !important; margin: 0 0 16px !important; }
.cart-collaterals { display: grid; gap: 20px; }
.coupon { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin-bottom: 18px; }
.coupon input[type=text] { max-width: 240px; }
.shop_table.cart .product-thumbnail img { width: 72px !important; height: 72px !important; border-radius: 8px; object-fit: cover; border: 1.5px solid rgba(42,33,23,0.18); }
.shop_table.cart .product-name a { color: #2A2117 !important; font-family: "Coaster Black","Lilita One",sans-serif !important; font-size: 14px !important; letter-spacing: 0.04em; text-transform: uppercase !important; text-decoration: none !important; border-bottom: 0 !important; }
.shop_table.cart .product-price, .shop_table.cart .product-subtotal { color: #BC53A1 !important; font-weight: 600 !important; }
.shop_table.cart .product-quantity input { max-width: 80px; padding: 8px 12px !important; border-radius: 12px !important; }

/* Checkout specifics */
body.woocommerce-checkout .woocommerce { max-width: 1100px; margin: 0 auto; }
body.woocommerce-checkout #customer_details { background: #FCF7E7; border: 1.5px solid rgba(42,33,23,0.12); border-radius: 18px; padding: 28px; }
body.woocommerce-checkout .woocommerce-checkout-review-order { background: #FCF7E7; border: 1.5px solid rgba(42,33,23,0.12); border-radius: 18px; padding: 28px; margin-top: 22px; }
body.woocommerce-checkout #payment { background: transparent !important; border-radius: 0 !important; }
body.woocommerce-checkout #payment ul.payment_methods { background: #FFFDF3 !important; border: 1.5px solid rgba(42,33,23,0.18) !important; border-radius: 14px !important; padding: 16px !important; list-style: none; margin: 0 0 18px !important; }

/* Order received (thank you) page */
.woocommerce-order .woocommerce-thankyou-order-received { font-family: "Coaster Black","Lilita One",sans-serif !important; font-size: 28px !important; color: #2A2117 !important; text-align: center; margin: 0 0 28px !important; padding: 28px; background: #FCF7E7; border-radius: 18px; border: 1.5px solid rgba(42,33,23,0.12); }
.woocommerce-order .woocommerce-order-overview { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 14px; list-style: none; margin: 0 0 32px; padding: 0; }
.woocommerce-order .woocommerce-order-overview li { background: #FFFDF3; border: 1.5px solid rgba(42,33,23,0.18); border-radius: 14px; padding: 18px; font-family: "Inter", system-ui, sans-serif; font-size: 14px; }
.woocommerce-order .woocommerce-order-overview li strong { display: block; font-family: "Coaster Black","Lilita One",sans-serif; font-size: 16px; color: #2A2117; margin-top: 4px; }

/* WC account float reset — Lucille adds float:left/right which breaks grid layout */
.woocommerce-account .woocommerce { display: grid !important; grid-template-columns: 240px 1fr !important; gap: 32px !important; max-width: 1100px !important; margin: 0 auto !important; align-items: start !important; }
.woocommerce-MyAccount-navigation { float: none !important; width: 100% !important; max-width: 240px !important; }
.woocommerce-MyAccount-content { float: none !important; width: 100% !important; max-width: none !important; min-height: 200px; }
@media (max-width: 760px) { .woocommerce-account .woocommerce { grid-template-columns: 1fr !important; } .woocommerce-MyAccount-navigation { max-width: none !important; } }

/* WC account explicit columns — force nav to col1, content to col2 */
.woocommerce-MyAccount-navigation { grid-column: 1 / 2 !important; grid-row: 1 !important; }
.woocommerce-MyAccount-content { grid-column: 2 / 3 !important; grid-row: 1 !important; max-width: 100% !important; }
@media (max-width: 760px) { .woocommerce-MyAccount-navigation { grid-column: 1 !important; } .woocommerce-MyAccount-content { grid-column: 1 !important; grid-row: auto !important; } }

/* Floating cart button — bottom-right, persistent on all pages except cart/checkout */
.ff-fc { position: fixed; bottom: 22px; right: 22px; width: 60px; height: 60px; border-radius: 50%; background: #FFFDF3; border: 2px solid #2A2117; box-shadow: 0 12px 30px -14px rgba(42,33,23,0.40), 0 4px 10px -4px rgba(42,33,23,0.20); display: flex; align-items: center; justify-content: center; color: #2A2117 !important; text-decoration: none !important; z-index: 9990; transition: transform .18s ease, box-shadow .18s ease, background .18s ease; }
.ff-fc:hover { transform: translateY(-3px) scale(1.04); box-shadow: 0 18px 40px -16px rgba(42,33,23,0.45); background: linear-gradient(135deg, #FFFDF3 0%, #FCF7E7 100%); }
.ff-fc__icon { display: flex; align-items: center; justify-content: center; }
.ff-fc__count { position: absolute; top: -6px; right: -6px; min-width: 22px; height: 22px; padding: 0 6px; border-radius: 999px; background: linear-gradient(90deg, #BC53A1 0%, #E49B66 100%); color: #FFFDF3; border: 2px solid #FFFDF3; font-family: "Coaster Black","Lilita One",sans-serif; font-size: 11px; line-height: 18px; text-align: center; box-shadow: 0 4px 10px -4px rgba(42,33,23,0.40); transform: scale(0); transition: transform .22s cubic-bezier(0.34, 1.56, 0.64, 1); }
.ff-fc.has-items .ff-fc__count { transform: scale(1); }
@media (max-width: 600px) { .ff-fc { bottom: 18px; right: 18px; width: 54px; height: 54px; } }

/* Floating cart open state */
.ff-fc[aria-expanded="true"] { background: linear-gradient(135deg, #FCF7E7 0%, #F3D979 100%); }

/* Mini-cart drawer (slides out from right when floating cart is tapped) */
.ff-fc-overlay { position: fixed; inset: 0; background: rgba(42,33,23,0.5); opacity: 0; pointer-events: none; transition: opacity .25s ease; z-index: 9991; }
.ff-fc-overlay.is-open { opacity: 1; pointer-events: auto; }
.ff-fc-drawer { position: fixed; top: 0; right: 0; bottom: 0; width: 380px; max-width: 92vw; background: #FFFDF3; border-left: 2px solid #2A2117; box-shadow: -20px 0 60px -20px rgba(42,33,23,0.40); transform: translateX(100%); transition: transform .3s cubic-bezier(0.4, 0, 0.2, 1); z-index: 9992; display: flex; flex-direction: column; }
.ff-fc-drawer.is-open { transform: translateX(0); }
.ff-fc-drawer__head { display: flex; align-items: center; justify-content: space-between; padding: 22px 24px; border-bottom: 1.5px solid rgba(42,33,23,0.12); background: linear-gradient(180deg, #FCF7E7 0%, #FFFDF3 100%); position: relative; }
.ff-fc-drawer__head::before { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 3px; background: linear-gradient(90deg, #BC53A1 0%, #E49B66 25%, #F3D979 50%, #31A39B 75%, #49A6D5 100%); }
.ff-fc-drawer__head h3 { font-family: "Coaster Black","Lilita One",sans-serif; font-size: 22px; margin: 0; color: #2A2117; text-transform: uppercase; letter-spacing: 0.04em; font-weight: 400; }
.ff-fc-drawer__close { background: transparent; border: 0; width: 36px; height: 36px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 28px; line-height: 1; color: #2A2117; cursor: pointer; transition: background .18s; padding: 0; }
.ff-fc-drawer__close:hover { background: rgba(42,33,23,0.08); }
.ff-fc-drawer__body { flex: 1; overflow-y: auto; -webkit-overflow-scrolling: touch; }
.ff-fc-drawer__body .woocommerce-mini-cart, .ff-fc-drawer__body ul.cart_list, .ff-fc-drawer__body ul.product_list_widget { list-style: none !important; padding: 14px 24px !important; margin: 0 !important; }
.ff-fc-drawer__body .woocommerce-mini-cart li, .ff-fc-drawer__body ul.cart_list li, .ff-fc-drawer__body ul.product_list_widget li, .ff-fc-drawer__body .mini_cart_item { padding: 16px 0 !important; border-bottom: 1px dashed rgba(42,33,23,0.18) !important; display: grid !important; grid-template-columns: 56px 1fr auto !important; gap: 12px !important; align-items: center; position: relative; }
.ff-fc-drawer__body .woocommerce-mini-cart li:last-child, .ff-fc-drawer__body ul.cart_list li:last-child { border-bottom: 0 !important; }
.ff-fc-drawer__body .woocommerce-mini-cart li img, .ff-fc-drawer__body ul.cart_list li img, .ff-fc-drawer__body .mini_cart_item img { width: 56px !important; height: 56px !important; border-radius: 8px !important; object-fit: cover !important; border: 1px solid rgba(42,33,23,0.12); float: none !important; margin: 0 !important; }
.ff-fc-drawer__body .woocommerce-mini-cart li a:not(.remove), .ff-fc-drawer__body ul.cart_list li a:not(.remove) { font-family: "Coaster Black","Lilita One",sans-serif !important; font-size: 13px !important; letter-spacing: 0.04em !important; text-transform: uppercase !important; color: #2A2117 !important; text-decoration: none !important; border-bottom: 0 !important; line-height: 1.25 !important; }
.ff-fc-drawer__body .woocommerce-mini-cart li .quantity, .ff-fc-drawer__body ul.cart_list li .quantity { font-family: "Inter", sans-serif !important; font-size: 13px !important; color: #6E5F47 !important; display: block; margin-top: 4px; }
.ff-fc-drawer__body .woocommerce-mini-cart li .quantity .amount, .ff-fc-drawer__body ul.cart_list li .quantity .amount { color: #BC53A1 !important; font-weight: 600 !important; }
.ff-fc-drawer__body .remove, .ff-fc-drawer__body a.remove_from_cart_button { position: static !important; grid-column: 3; width: 28px !important; height: 28px !important; line-height: 26px !important; text-align: center; border-radius: 50% !important; background: rgba(42,33,23,0.06) !important; color: #2A2117 !important; font-size: 16px !important; text-decoration: none !important; border: 0 !important; }
.ff-fc-drawer__body .remove:hover, .ff-fc-drawer__body a.remove_from_cart_button:hover { background: #BC53A1 !important; color: #FFFDF3 !important; }
.ff-fc-drawer__body p.woocommerce-mini-cart__total, .ff-fc-drawer__body p.total { padding: 16px 24px !important; margin: 0 !important; border-top: 1.5px solid rgba(42,33,23,0.12); font-family: "Coaster Black","Lilita One",sans-serif !important; font-size: 13px !important; letter-spacing: 0.10em !important; text-transform: uppercase !important; color: #2A2117 !important; display: flex; justify-content: space-between; align-items: center; background: #FCF7E7; }
.ff-fc-drawer__body p.woocommerce-mini-cart__total .amount, .ff-fc-drawer__body p.total .amount { color: #BC53A1 !important; font-size: 18px !important; }
.ff-fc-drawer__body p.woocommerce-mini-cart__buttons, .ff-fc-drawer__body p.buttons { padding: 18px 24px !important; margin: 0 !important; display: flex; flex-direction: column; gap: 10px; background: #FCF7E7; }
.ff-fc-drawer__body p.woocommerce-mini-cart__buttons a, .ff-fc-drawer__body p.buttons a { display: block !important; text-align: center !important; margin: 0 !important; }
.ff-fc-drawer__body p.woocommerce-mini-cart__buttons a.checkout, .ff-fc-drawer__body p.buttons a.checkout { background: linear-gradient(90deg, #BC53A1 0%, #E49B66 25%, #F3D979 50%, #31A39B 75%, #49A6D5 100%) !important; }
.ff-fc-drawer__body p.woocommerce-mini-cart__buttons a:not(.checkout), .ff-fc-drawer__body p.buttons a:not(.checkout) { background: #FFFDF3 !important; }
.ff-fc-drawer__body .woocommerce-mini-cart__empty-message, .ff-fc-drawer__body p.empty { text-align: center !important; padding: 60px 24px !important; font-family: "Inter", sans-serif !important; color: #6E5F47 !important; font-size: 15px !important; margin: 0 !important; }

/* admin bar drawer offset — push drawer below WP admin bar when present */
body.admin-bar .ff-fc-drawer { top: 32px; }
@media (max-width: 782px) { body.admin-bar .ff-fc-drawer { top: 46px; } }

/* Close tab — bottom-right, easy thumb reach on mobile */
.ff-fc-drawer__close-tab { position: absolute; bottom: 18px; right: 18px; display: inline-flex; align-items: center; gap: 8px; padding: 10px 16px; border-radius: 999px; background: #FFFDF3; border: 1.5px solid #2A2117; color: #2A2117; font-family: "Coaster Black","Lilita One",sans-serif; font-size: 11px; letter-spacing: 0.10em; text-transform: uppercase; cursor: pointer; box-shadow: 0 8px 18px -8px rgba(42,33,23,0.30); transition: transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease; z-index: 2; }
.ff-fc-drawer__close-tab:hover { transform: translateX(2px); background: linear-gradient(90deg, #BC53A1 0%, #E49B66 100%); color: #FFFDF3; border-color: transparent; box-shadow: 0 12px 24px -10px rgba(42,33,23,0.40); }
.ff-fc-drawer__close-tab svg { display: block; }

/* Sleeker rainbow buttons — drop heavy 2px border, add soft shadow */
.btn-rainbow,
.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt,
.woocommerce-page a.button.alt, .woocommerce-page button.button.alt, .woocommerce-page input.button.alt,
.woocommerce a.single_add_to_cart_button, .woocommerce button.single_add_to_cart_button, .woocommerce input.single_add_to_cart_button,
.woocommerce-page a.single_add_to_cart_button, .woocommerce-page button.single_add_to_cart_button, .woocommerce-page input.single_add_to_cart_button,
.ff-fc-drawer__body p.woocommerce-mini-cart__buttons a.checkout,
.ff-fc-drawer__body p.buttons a.checkout,
.ff-c-cta__btn--rainbow, .ff-a-cta__btn--rainbow, .ff-g-cta__btn, .ff-empty-cart-cta {
  border: 0 !important;
  padding: 12px 26px !important;
  font-size: 12.5px !important;
  letter-spacing: 0.10em !important;
  box-shadow: 0 6px 16px -6px rgba(42,33,23,0.30), inset 0 0 0 1px rgba(255,253,243,0.45) !important;
  transition: transform .18s ease, box-shadow .22s ease, filter .18s ease !important;
}
.btn-rainbow:hover,
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover, .woocommerce input.button.alt:hover,
.woocommerce a.single_add_to_cart_button:hover, .woocommerce button.single_add_to_cart_button:hover, .woocommerce input.single_add_to_cart_button:hover,
.ff-fc-drawer__body p.woocommerce-mini-cart__buttons a.checkout:hover,
.ff-fc-drawer__body p.buttons a.checkout:hover,
.ff-c-cta__btn--rainbow:hover, .ff-a-cta__btn--rainbow:hover, .ff-g-cta__btn:hover, .ff-empty-cart-cta:hover {
  transform: translateY(-1px) !important;
  box-shadow: 0 12px 26px -8px rgba(42,33,23,0.38), inset 0 0 0 1px rgba(255,253,243,0.55) !important;
  filter: saturate(1.05);
}

/* ============================================================
   Calendar chooser modal + month grid (events page)
   ============================================================ */
.ff-cal-modal { position: fixed; inset: 0; display: none; align-items: center; justify-content: center; z-index: 99993; padding: 20px; }
.ff-cal-modal.is-open { display: flex; }
.ff-cal-modal__overlay { position: absolute; inset: 0; background: rgba(42,33,23,0.55); backdrop-filter: blur(2px); }
.ff-cal-modal__panel { position: relative; background: #FFFDF3; border: 2px solid #2A2117; border-radius: 22px; max-width: 460px; width: 100%; padding: 28px 24px 24px; box-shadow: 0 30px 60px -20px rgba(42,33,23,0.50); animation: ffCalIn .28s cubic-bezier(0.34, 1.56, 0.64, 1); }
@keyframes ffCalIn { from { transform: translateY(20px) scale(0.96); opacity: 0; } to { transform: translateY(0) scale(1); opacity: 1; } }
.ff-cal-modal__panel::before { content: ""; position: absolute; left: 24px; right: 24px; top: 0; height: 4px; border-radius: 0 0 4px 4px; background: linear-gradient(90deg, #BC53A1 0%, #E49B66 25%, #F3D979 50%, #31A39B 75%, #49A6D5 100%); }
.ff-cal-modal__close { position: absolute; top: 14px; right: 14px; width: 36px; height: 36px; border-radius: 50%; background: transparent; border: 0; font-size: 28px; line-height: 1; color: #2A2117; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background .18s; padding: 0; }
.ff-cal-modal__close:hover { background: rgba(42,33,23,0.08); }
.ff-cal-modal__title { font-family: "Coaster Black","Lilita One",sans-serif !important; font-weight: 400 !important; font-size: 22px !important; letter-spacing: 0.04em; text-transform: uppercase; color: #2A2117; margin: 0 0 4px !important; padding-right: 30px; }
.ff-cal-modal__sub { font-family: "Inter", sans-serif; font-size: 14px; color: #6E5F47; margin: 0 0 22px; }
.ff-cal-modal__opts { display: flex; flex-direction: column; gap: 10px; }
.ff-cal-modal__opt { display: flex; align-items: center; gap: 14px; padding: 14px 16px; border-radius: 14px; background: #FCF7E7; border: 1.5px solid rgba(42,33,23,0.18); color: #2A2117 !important; text-decoration: none !important; transition: transform .18s ease, border-color .18s ease, background .18s ease, box-shadow .18s ease; }
.ff-cal-modal__opt:hover { transform: translateX(2px); border-color: #2A2117; background: #FFFDF3; box-shadow: 0 8px 18px -8px rgba(42,33,23,0.25); }
.ff-cal-modal__icon { display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 12px; flex-shrink: 0; background: #FFFDF3; border: 1.5px solid rgba(42,33,23,0.18); position: relative; overflow: hidden; }
.ff-cal-modal__opt--google .ff-cal-modal__icon { background: linear-gradient(135deg, #4285F4 0%, #34A853 100%); border-color: transparent; }
.ff-cal-modal__opt--apple .ff-cal-modal__icon { background: #2A2117; border-color: #2A2117; }
.ff-cal-modal__opt--outlook .ff-cal-modal__icon { background: linear-gradient(135deg, #0078D4 0%, #00BCF2 100%); border-color: transparent; }
.ff-cal-modal__opt--ics .ff-cal-modal__icon { background: linear-gradient(90deg, #BC53A1 0%, #E49B66 33%, #F3D979 66%, #31A39B 100%); border-color: transparent; }
.ff-cal-modal__icon::after { content: attr(data-letter); }
.ff-cal-modal__opt--google .ff-cal-modal__icon::after { content: "G"; color: #FFFDF3; font-family: "Coaster Black","Lilita One",sans-serif; font-size: 18px; font-weight: 400; }
.ff-cal-modal__opt--apple .ff-cal-modal__icon::after { content: "\f8ff"; color: #FFFDF3; font-family: -apple-system, system-ui, sans-serif; font-size: 18px; }
.ff-cal-modal__opt--outlook .ff-cal-modal__icon::after { content: "O"; color: #FFFDF3; font-family: "Coaster Black","Lilita One",sans-serif; font-size: 18px; font-weight: 400; }
.ff-cal-modal__opt--ics .ff-cal-modal__icon::after { content: "\2193"; color: #FFFDF3; font-size: 22px; font-weight: bold; line-height: 1; }
.ff-cal-modal__txt { display: flex; flex-direction: column; gap: 2px; line-height: 1.25; }
.ff-cal-modal__txt strong { font-family: "Coaster Black","Lilita One",sans-serif; font-weight: 400; font-size: 14px; letter-spacing: 0.04em; text-transform: uppercase; color: #2A2117; }
.ff-cal-modal__txt em { font-style: normal; font-family: "Inter", sans-serif; font-size: 12.5px; color: #6E5F47; }
@media (max-width: 600px) { .ff-cal-modal__panel { padding: 24px 18px 18px; border-radius: 18px; } .ff-cal-modal__title { font-size: 19px !important; } }

/* Month-view calendar grid */
.ff-cal-section { padding: 70px 24px 90px; background: #FCF7E7; position: relative; }
.ff-cal-section::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 6px; background: linear-gradient(90deg, #BC53A1 0%, #E49B66 25%, #F3D979 50%, #31A39B 75%, #49A6D5 100%); }
.ff-cal-section__inner { max-width: 760px; margin: 0 auto; }
.ff-cal-section__head { text-align: center; margin: 0 0 32px; }
.ff-cal-section__eyebrow { font-family: "Coaster Black","Lilita One",sans-serif; font-size: 13px; letter-spacing: 0.16em; text-transform: uppercase; color: #BC53A1; margin: 0 0 12px; }
.ff-cal-section__title { font-family: "Coaster Black","Lilita One",sans-serif !important; font-weight: 400 !important; font-size: clamp(28px, 4vw, 44px); color: #2A2117; margin: 0; line-height: 1; }
.ff-cal-grid { background: #FFFDF3; border: 1.5px solid rgba(42,33,23,0.15); border-radius: 22px; padding: 22px; box-shadow: 0 18px 40px -22px rgba(42,33,23,0.20); }
.ff-cal-grid__head { display: flex; align-items: center; justify-content: space-between; margin: 0 0 18px; }
.ff-cal-grid__nav { width: 38px; height: 38px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-size: 18px; color: #2A2117 !important; text-decoration: none !important; background: #FCF7E7; border: 1.5px solid rgba(42,33,23,0.18); transition: background .18s, transform .18s; }
.ff-cal-grid__nav:hover { transform: translateY(-1px); background: #FFFDF3; }
.ff-cal-grid__month { font-family: "Coaster Black","Lilita One",sans-serif !important; font-weight: 400 !important; font-size: 22px !important; letter-spacing: 0.02em; color: #2A2117; margin: 0; }
.ff-cal-grid__weekdays { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; margin: 0 0 8px; }
.ff-cal-grid__weekdays span { font-family: "Coaster Black","Lilita One",sans-serif; font-size: 12px; letter-spacing: 0.06em; text-transform: uppercase; color: #BC53A1; text-align: center; padding: 6px 0; }
.ff-cal-grid__days { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.ff-cal-grid__day { aspect-ratio: 1/1; display: flex; align-items: center; justify-content: center; font-family: "Inter", sans-serif; font-size: 14px; font-weight: 500; color: #2A2117; border-radius: 10px; background: transparent; border: 0; padding: 0; min-height: 38px; }
.ff-cal-grid__day--empty { visibility: hidden; }
.ff-cal-grid__day.is-past:not(.has-event) { color: rgba(42,33,23,0.25); }
.ff-cal-grid__day.is-today { background: rgba(243,217,121,0.35); font-weight: 700; }
.ff-cal-grid__day.has-event { background: linear-gradient(135deg, #BC53A1 0%, #E49B66 50%, #F3D979 100%); color: #FFFDF3; font-weight: 700; cursor: pointer; text-decoration: none !important; transition: transform .18s, box-shadow .18s, filter .18s; box-shadow: 0 4px 10px -4px rgba(188,83,161,0.40); }
.ff-cal-grid__day.has-event:hover { transform: scale(1.08); box-shadow: 0 8px 16px -6px rgba(188,83,161,0.55); filter: saturate(1.08); }
.ff-cal-grid__day.has-event.is-today { outline: 2px solid #2A2117; outline-offset: 2px; }
.ff-cal-grid__legend { margin: 18px 0 0; font-family: "Inter", sans-serif; font-size: 12.5px; color: #6E5F47; display: flex; gap: 16px; align-items: center; flex-wrap: wrap; justify-content: center; }
.ff-cal-grid__chip { display: inline-block; width: 14px; height: 14px; border-radius: 4px; vertical-align: middle; margin-right: 4px; }
.ff-cal-grid__chip--event { background: linear-gradient(135deg, #BC53A1, #E49B66); }
.ff-cal-grid__chip--today { background: rgba(243,217,121,0.5); border: 1px solid rgba(42,33,23,0.30); }
.ff-event-card.is-flashed { animation: ffCardFlash 1.8s ease-out; }
@keyframes ffCardFlash { 0% { box-shadow: 0 0 0 0 rgba(188,83,161,0.55), 0 12px 30px -18px rgba(42,33,23,0.30); transform: scale(1); } 30% { box-shadow: 0 0 0 6px rgba(188,83,161,0.35), 0 18px 40px -18px rgba(42,33,23,0.40); transform: scale(1.005); } 100% { box-shadow: 0 0 0 0 rgba(188,83,161,0); transform: scale(1); } }
@media (max-width: 600px) { .ff-cal-section { padding: 50px 16px 70px; } .ff-cal-grid { padding: 16px; } .ff-cal-grid__day { min-height: 34px; font-size: 13px; } .ff-cal-grid__nav { width: 34px; height: 34px; } .ff-cal-grid__month { font-size: 18px !important; } }
