/* ============================================================
   FREEDOM LIFESTYLE — Encore Theme Overrides
   Colours: #FFFFF9 cream | #FFEEEE blush | #6B6E7A slate
            #3A3C44 slate-dark | #929A82 sage | #C8CFC0 sage-light
            #E8EDE4 sage-pale  | #AAACB4 slate-light
   Fonts:   Bricolage Grotesque (headings) | Newsreader (body)
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:wght@300;400;500;700&family=Newsreader:ital,wght@0,300;0,400;1,300;1,400&display=swap');

/* ── CSS Variables ─────────────────────────────────────── */
:root {
  --fl-cream:       #FFFFF9;
  --fl-blush:       #FFEEEE;
  --fl-blush-deep:  #E8C8C8;
  --fl-slate:       #6B6E7A;
  --fl-slate-dark:  #3A3C44;
  --fl-slate-light: #AAACB4;
  --fl-sage:        #929A82;
  --fl-sage-light:  #C8CFC0;
  --fl-sage-pale:   #E8EDE4;
}

/* ── Global Typography ────────────────────────────────── */
body {
  font-family: 'Newsreader', Georgia, serif !important;
  background-color: var(--fl-cream) !important;
  color: var(--fl-slate-dark) !important;
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
  font-family: 'Bricolage Grotesque', sans-serif !important;
  letter-spacing: -0.025em !important;
  line-height: 1.1 !important;
}

p, li, blockquote, .feature__text p, .card__text p {
  font-family: 'Newsreader', Georgia, serif !important;
  font-weight: 300 !important;
  line-height: 1.8 !important;
}

/* ── Buttons ──────────────────────────────────────────── */
.btn {
  font-family: 'Bricolage Grotesque', sans-serif !important;
  font-weight: 500 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  border-radius: 100px !important;
  transition: all 0.25s ease !important;
}
.btn:hover { transform: translateY(-2px) !important; }

/* ── Section backgrounds ──────────────────────────────── */
.fl-section-cream   { background-color: var(--fl-cream) !important; }
.fl-section-blush   { background-color: var(--fl-blush) !important; }
.fl-section-sage    { background-color: var(--fl-sage) !important; }
.fl-section-dark    { background-color: var(--fl-slate-dark) !important; }
.fl-section-blush .section__overlay,
.fl-section-sage  .section__overlay,
.fl-section-dark  .section__overlay { opacity: 0 !important; }

/* ── Hero section ─────────────────────────────────────── */
.fl-hero-section { position: relative; overflow: hidden; }
.fl-hero-section .container { position: relative; z-index: 1; }

/* Hero bg watermark via pseudo */
.fl-hero-section::before {
  content: 'FREEDOM';
  position: absolute;
  bottom: -40px; left: -10px;
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: clamp(120px, 18vw, 240px);
  font-weight: 700;
  color: rgba(146,154,130,0.07);
  line-height: 1;
  pointer-events: none;
  user-select: none;
  letter-spacing: -0.04em;
  white-space: nowrap;
  z-index: 0;
}

/* Hero heading */
.fl-hero-section h1 {
  font-size: clamp(48px, 6.5vw, 88px) !important;
  font-weight: 700 !important;
  line-height: 0.95 !important;
  color: var(--fl-slate-dark) !important;
}
.fl-hero-section h1 em {
  font-family: 'Newsreader', Georgia, serif !important;
  font-style: italic !important;
  font-weight: 300 !important;
  color: var(--fl-sage) !important;
}
.fl-hero-section p {
  font-size: 18px !important;
  font-style: italic !important;
  color: var(--fl-slate) !important;
  max-width: 520px;
}

/* Hero badge eyebrow */
.fl-eyebrow-badge p,
.fl-eyebrow-badge .feature__text p {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  background: var(--fl-blush) !important;
  color: var(--fl-slate) !important;
  font-family: 'Bricolage Grotesque', sans-serif !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  font-style: normal !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  padding: 7px 18px !important;
  border-radius: 100px !important;
  margin-bottom: 20px !important;
}

/* ── Eyebrow label (used across sections) ─────────────── */
.fl-eyebrow p,
.fl-eyebrow .feature__text p {
  font-family: 'Bricolage Grotesque', sans-serif !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  font-style: normal !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  color: var(--fl-sage) !important;
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  margin-bottom: 12px !important;
}
.fl-eyebrow p::before {
  content: '' !important;
  width: 24px; height: 1px;
  background: var(--fl-sage);
  flex-shrink: 0;
  display: inline-block;
}
.fl-eyebrow-light p,
.fl-eyebrow-light .feature__text p {
  color: var(--fl-sage-light) !important;
}
.fl-eyebrow-light p::before { background: var(--fl-sage-light); }

.fl-eyebrow-mid p,
.fl-eyebrow-mid .feature__text p {
  color: var(--fl-slate) !important;
}
.fl-eyebrow-mid p::before { background: var(--fl-slate); }

/* ── Section headings ─────────────────────────────────── */
.fl-section-heading h2 {
  font-size: clamp(30px, 3vw, 50px) !important;
  color: var(--fl-slate-dark) !important;
  margin-bottom: 20px !important;
}
.fl-section-heading h2 em {
  font-family: 'Newsreader', Georgia, serif !important;
  font-style: italic !important;
  font-weight: 300 !important;
  color: var(--fl-sage) !important;
}
.fl-heading-on-dark h2 { color: var(--fl-cream) !important; }
.fl-heading-on-dark h2 em { color: var(--fl-sage-light) !important; }
.fl-heading-on-sage h2 { color: var(--fl-cream) !important; }
.fl-heading-on-sage h2 em { color: rgba(255,255,249,0.65) !important; }
.fl-heading-on-sage p { color: rgba(255,255,249,0.7) !important; }
.fl-heading-on-dark p { color: rgba(255,255,249,0.45) !important; }

/* ── Location pill ────────────────────────────────────── */
.fl-location-pill p,
.fl-location-pill .feature__text p {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  background: var(--fl-cream) !important;
  border-radius: 100px !important;
  padding: 10px 20px !important;
  font-family: 'Bricolage Grotesque', sans-serif !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  font-style: normal !important;
  color: var(--fl-slate-dark) !important;
  box-shadow: 0 4px 20px rgba(107,110,122,0.15) !important;
  width: fit-content !important;
  margin: 0 auto !important;
}

/* ── Stats bar ────────────────────────────────────────── */
.fl-stats-section { background-color: var(--fl-slate-dark) !important; }
.fl-stats-section::before {
  content: '';
  display: block;
  height: 3px;
  background: linear-gradient(90deg, var(--fl-sage), var(--fl-sage-light), var(--fl-sage));
  position: absolute;
  top: 0; left: 0; right: 0;
}
.fl-stats-section .section { position: relative; }
.fl-stat-block h2 {
  font-family: 'Bricolage Grotesque', sans-serif !important;
  font-size: 44px !important;
  font-weight: 700 !important;
  letter-spacing: -0.03em !important;
  color: var(--fl-blush) !important;
  line-height: 1 !important;
  margin-bottom: 8px !important;
}
.fl-stat-block p {
  font-family: 'Bricolage Grotesque', sans-serif !important;
  font-size: 12px !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: rgba(255,255,249,0.35) !important;
  font-style: normal !important;
}

/* ── Floating stat pill ───────────────────────────────── */
.fl-stat-pill { position: relative; }
.fl-stat-pill .block {
  background: var(--fl-sage) !important;
  color: var(--fl-cream) !important;
  border-radius: 12px !important;
  padding: 16px 20px !important;
  box-shadow: 0 8px 32px rgba(146,154,130,0.35) !important;
  max-width: 200px !important;
  margin-top: 16px !important;
}
.fl-stat-pill h4 {
  font-family: 'Bricolage Grotesque', sans-serif !important;
  font-size: 28px !important;
  font-weight: 700 !important;
  letter-spacing: -0.02em !important;
  color: var(--fl-cream) !important;
  margin-bottom: 4px !important;
  line-height: 1 !important;
}
.fl-stat-pill p {
  font-family: 'Bricolage Grotesque', sans-serif !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  color: rgba(255,255,249,0.8) !important;
  font-style: normal !important;
  line-height: 1.4 !important;
}

/* ── Image cards (stacked pair) ───────────────────────── */
.fl-img-pair .image {
  border-radius: 12px !important;
  overflow: hidden !important;
  aspect-ratio: 3/4 !important;
}
.fl-img-pair-top .image { margin-top: 48px !important; }

/* ── Checklist items ──────────────────────────────────── */
.fl-checklist ul { list-style: none !important; padding: 0 !important; }
.fl-checklist ul li {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  font-family: 'Bricolage Grotesque', sans-serif !important;
  font-size: 15px !important;
  font-weight: 300 !important;
  color: var(--fl-slate) !important;
  margin-bottom: 12px !important;
  padding: 0 !important;
}
.fl-checklist ul li::before {
  content: '' !important;
  width: 20px; height: 20px;
  flex-shrink: 0;
  border-radius: 50%;
  background: var(--fl-sage-pale);
  border: 1px solid var(--fl-sage-light);
  background-image: url("data:image/svg+xml,%3Csvg width='10' height='8' viewBox='0 0 10 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 4L3.5 6.5L9 1' stroke='%23929A82' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat;
  background-position: center;
  display: inline-block;
}

/* ── Pull quote ───────────────────────────────────────── */
.fl-pullquote .block {
  background: var(--fl-sage-pale) !important;
  border-radius: 12px !important;
  padding: 24px 28px !important;
  position: relative !important;
}
.fl-pullquote p {
  font-family: 'Newsreader', Georgia, serif !important;
  font-size: 20px !important;
  font-style: italic !important;
  font-weight: 300 !important;
  color: var(--fl-slate-dark) !important;
  line-height: 1.6 !important;
  margin: 0 !important;
}
.fl-pullquote .block::before {
  content: '\201C';
  font-family: 'Newsreader', Georgia, serif;
  font-size: 60px;
  color: var(--fl-sage-light);
  position: absolute;
  top: -10px; left: 16px;
  line-height: 1;
  pointer-events: none;
}

/* ── Offering cards ───────────────────────────────────── */
.fl-offering-card .block {
  background: var(--fl-cream) !important;
  border-radius: 16px !important;
  overflow: hidden !important;
  transition: transform 0.3s ease, box-shadow 0.3s ease !important;
  padding: 0 !important;
}
.fl-offering-card .block:hover {
  transform: translateY(-8px) !important;
  box-shadow: 0 24px 60px rgba(107,110,122,0.12) !important;
}
.fl-offering-card .card__image {
  width: 100% !important;
  aspect-ratio: 4/3 !important;
  object-fit: cover !important;
}
.fl-offering-card .card__body { padding: 28px !important; }
.fl-offering-card h3 {
  font-family: 'Bricolage Grotesque', sans-serif !important;
  font-size: 21px !important;
  font-weight: 700 !important;
  letter-spacing: -0.02em !important;
  color: var(--fl-slate-dark) !important;
  margin-bottom: 10px !important;
}
.fl-offering-card p {
  font-size: 14px !important;
  color: var(--fl-slate) !important;
  margin-bottom: 20px !important;
}
.fl-offering-card .btn {
  background: transparent !important;
  color: var(--fl-slate-dark) !important;
  border: none !important;
  padding: 0 !important;
  border-radius: 0 !important;
  font-size: 12px !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  transform: none !important;
}
.fl-offering-card .btn::after {
  content: ' →';
  transition: margin-left 0.2s;
}
.fl-offering-card .btn:hover { color: var(--fl-sage) !important; }
.fl-offering-card .btn:hover::after { margin-left: 6px; }

/* Offering type tag */
.fl-offering-type p {
  font-family: 'Bricolage Grotesque', sans-serif !important;
  font-size: 10px !important;
  font-weight: 500 !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  color: var(--fl-sage) !important;
  font-style: normal !important;
  margin-bottom: 6px !important;
}

/* Offering card counter */
.fl-offering-counter p {
  font-family: 'Bricolage Grotesque', sans-serif !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  color: var(--fl-slate) !important;
  font-style: normal !important;
  background: rgba(255,255,249,0.9) !important;
  border-radius: 100px !important;
  padding: 4px 12px !important;
  width: fit-content !important;
  margin-bottom: 4px !important;
}

/* ── Testimonial cards ────────────────────────────────── */
.fl-testimonial-card .block {
  background: var(--fl-cream) !important;
  border-radius: 16px !important;
  padding: 40px !important;
  position: relative !important;
  overflow: hidden !important;
}
.fl-testimonial-card .block::before {
  content: '\201C';
  position: absolute;
  top: 20px; right: 24px;
  font-family: 'Newsreader', Georgia, serif;
  font-size: 80px;
  color: var(--fl-blush);
  line-height: 1;
  pointer-events: none;
}
.fl-testimonial-card p {
  font-family: 'Newsreader', Georgia, serif !important;
  font-size: 17px !important;
  font-style: italic !important;
  font-weight: 300 !important;
  color: var(--fl-slate-dark) !important;
  line-height: 1.8 !important;
}
.fl-testimonial-card .feature__image {
  border-radius: 50% !important;
  width: 44px !important;
  height: 44px !important;
  object-fit: cover !important;
}
.fl-testimonial-card h4 {
  font-family: 'Bricolage Grotesque', sans-serif !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  color: var(--fl-slate-dark) !important;
  margin-bottom: 2px !important;
}

/* ── Result badge (on testimonial) ───────────────────── */
.fl-result-badge p,
.fl-result-badge .feature__text p {
  display: inline-block !important;
  background: var(--fl-sage-pale) !important;
  color: var(--fl-sage) !important;
  font-family: 'Bricolage Grotesque', sans-serif !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  font-style: normal !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  padding: 3px 10px !important;
  border-radius: 100px !important;
  margin: 4px 0 0 !important;
  width: fit-content !important;
}

/* ── Step cards (dark section) ───────────────────────── */
.fl-step-card .block {
  background: rgba(255,255,255,0.03) !important;
  border: 1px solid rgba(255,255,255,0.05) !important;
  border-radius: 4px !important;
  padding: 44px 36px !important;
  transition: background 0.3s !important;
  height: 100% !important;
}
.fl-step-card .block:hover { background: rgba(255,255,255,0.06) !important; }
.fl-step-num h2 {
  font-family: 'Bricolage Grotesque', sans-serif !important;
  font-size: 72px !important;
  font-weight: 700 !important;
  letter-spacing: -0.04em !important;
  color: rgba(146,154,130,0.15) !important;
  line-height: 1 !important;
  margin-bottom: 24px !important;
}
.fl-step-card h3 {
  font-family: 'Bricolage Grotesque', sans-serif !important;
  font-size: 22px !important;
  font-weight: 700 !important;
  letter-spacing: -0.02em !important;
  color: var(--fl-cream) !important;
  margin-bottom: 14px !important;
  line-height: 1.2 !important;
}
.fl-step-card p {
  font-size: 14px !important;
  color: rgba(255,255,249,0.4) !important;
  line-height: 1.85 !important;
}
.fl-step-card .image {
  border-radius: 8px !important;
  overflow: hidden !important;
  margin-bottom: 28px !important;
  border: 1px solid rgba(255,255,255,0.05) !important;
}

/* ── Pillar cards ─────────────────────────────────────── */
.fl-pillar-card .block {
  border-radius: 16px !important;
  border: 1px solid rgba(107,110,122,0.1) !important;
  padding: 40px 32px !important;
  background: var(--fl-cream) !important;
  transition: border-color 0.3s, transform 0.3s !important;
  position: relative !important;
  overflow: hidden !important;
  height: 100% !important;
}
.fl-pillar-card .block::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--fl-sage), var(--fl-sage-light));
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.3s;
}
.fl-pillar-card .block:hover {
  border-color: var(--fl-sage-light) !important;
  transform: translateY(-4px) !important;
}
.fl-pillar-card .block:hover::after { transform: scaleX(1); }
.fl-pillar-card .feature__image {
  border-radius: 14px !important;
  width: 52px !important;
  height: 52px !important;
  background: var(--fl-sage-pale) !important;
  object-fit: contain !important;
}
.fl-pillar-card h3 {
  font-family: 'Bricolage Grotesque', sans-serif !important;
  font-size: 22px !important;
  font-weight: 700 !important;
  letter-spacing: -0.02em !important;
  color: var(--fl-slate-dark) !important;
  margin-bottom: 12px !important;
}
.fl-pillar-card p { font-size: 14px !important; color: var(--fl-slate) !important; margin-bottom: 20px !important; }
.fl-pillar-card .btn {
  background: transparent !important;
  color: var(--fl-sage) !important;
  border: none !important;
  padding: 0 !important;
  border-radius: 0 !important;
  font-size: 12px !important;
  letter-spacing: 0.08em !important;
  transform: none !important;
}
.fl-pillar-card .btn::after { content: ' →'; }
.fl-pillar-card .btn:hover { color: var(--fl-slate-dark) !important; }

/* ── Bio section ──────────────────────────────────────── */
.fl-bio-section .image { border-radius: 0 !important; }

/* ── Empathetic (sage) section ───────────────────────── */
.fl-empath-section .image { border-radius: 0 !important; }
.fl-empath-section .btn {
  background: var(--fl-cream) !important;
  color: var(--fl-sage) !important;
  border-color: var(--fl-cream) !important;
}
.fl-empath-section .btn:hover {
  background: var(--fl-slate-dark) !important;
  color: var(--fl-cream) !important;
}

/* ── Lead magnet / dark section ──────────────────────── */
.fl-lead-section h2 { font-size: clamp(28px, 2.8vw, 46px) !important; }
.fl-lead-section .form-control {
  border-radius: 100px 0 0 100px !important;
  background: rgba(255,255,249,0.06) !important;
  border-color: rgba(255,255,249,0.1) !important;
  color: var(--fl-cream) !important;
}
.fl-lead-section .form-control::placeholder { color: rgba(255,255,249,0.25) !important; }
.fl-lead-section .form-btn {
  border-radius: 0 100px 100px 0 !important;
  background: var(--fl-sage) !important;
  border-color: var(--fl-sage) !important;
  color: var(--fl-cream) !important;
}
.fl-lead-section .form-btn:hover {
  background: var(--fl-sage-light) !important;
  border-color: var(--fl-sage-light) !important;
}
.fl-lead-section .fields-wrapper { display: flex !important; }
.fl-lead-section .fields-wrapper .form-group { flex: 1; margin-bottom: 0 !important; }
.fl-lead-section .fields-wrapper .form-group .form-control { border-right: none !important; }

/* ── Book mockup ──────────────────────────────────────── */
.fl-mockup-book .image {
  border-radius: 8px !important;
  box-shadow: 16px 16px 60px rgba(0,0,0,0.35) !important;
  transform: rotate(-4deg) !important;
  max-width: 180px !important;
}
.fl-mockup-book-2 .image {
  border-radius: 8px !important;
  box-shadow: 8px 8px 40px rgba(0,0,0,0.25) !important;
  transform: rotate(5deg) translateY(20px) !important;
  max-width: 130px !important;
}

/* ── Ticker strip ─────────────────────────────────────── */
.fl-ticker-section { background: var(--fl-sage) !important; overflow: hidden !important; padding: 0 !important; }
.fl-ticker-section .sizer { padding-top: 0 !important; padding-bottom: 0 !important; }
.fl-ticker-section .container { max-width: 100% !important; padding: 0 !important; overflow: hidden; }
.fl-ticker-section .row { margin: 0 !important; flex-wrap: nowrap !important; }
.fl-ticker-inner {
  display: flex !important;
  animation: fl-ticker-anim 22s linear infinite !important;
  white-space: nowrap !important;
}
@keyframes fl-ticker-anim {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}
.fl-ticker-item p {
  font-family: 'Bricolage Grotesque', sans-serif !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: var(--fl-cream) !important;
  font-style: normal !important;
  padding: 12px 40px !important;
  white-space: nowrap !important;
}
.fl-ticker-item p::after { content: ' ✦'; opacity: 0.5; }

/* ── FAQ / Accordion ──────────────────────────────────── */
.fl-faq-section .accordion {
  border-radius: 12px !important;
  border: 1px solid rgba(107,110,122,0.1) !important;
  background: var(--fl-cream) !important;
  box-shadow: none !important;
}
.fl-faq-section .accordion-title h5 {
  font-family: 'Bricolage Grotesque', sans-serif !important;
  font-weight: 500 !important;
  color: var(--fl-slate-dark) !important;
  padding: 20px 0 !important;
}
.fl-faq-section .accordion-body p { color: var(--fl-slate) !important; }

/* ── Footer ───────────────────────────────────────────── */
.footer { background-color: var(--fl-slate-dark) !important; }
.footer, .footer a { color: rgba(255,255,249,0.3) !important; }
.footer .logo__text { color: var(--fl-cream) !important; font-family: 'Bricolage Grotesque', sans-serif !important; font-weight: 500 !important; }
.footer a:hover { color: var(--fl-sage-light) !important; }

/* ── Responsive ───────────────────────────────────────── */
@media (max-width: 767px) {
  .fl-hero-section::before { display: none; }
  .fl-mockup-book .image { transform: none !important; }
  .fl-mockup-book-2 { display: none !important; }
  .fl-stat-pill .block { margin: 16px auto 0 !important; }
}
