/* === THE SIGNAL HERO === */
@import url("https://fonts.googleapis.com/css2?family=Lato:wght@400;700;900&family=Merriweather:wght@300;400;700&display=swap");

.fb-cat-hero *, .fb-cat-hero ::before, .fb-cat-hero ::after { box-sizing: border-box; margin: 0; padding: 0; }
.fb-cat-hero { position: relative; min-height: 60vh; width: 100%; display: flex; align-items: center; overflow: hidden; background: rgb(26, 24, 21); font-family: Merriweather, Georgia, serif; }
.fb-cat-hero-photo { position: absolute; inset: 0; background-image: url("/img/hero-phil-studio.jpg"); background-size: cover; background-position: center top; background-repeat: no-repeat; }
.fb-cat-hero-overlay { position: absolute; inset: 0; background: linear-gradient(135deg, rgba(26, 24, 21, 0.82) 0%, rgba(26, 24, 21, 0.6) 50%, rgba(26, 24, 21, 0.45) 100%); z-index: 1; }
.fb-cat-hero-content { position: relative; z-index: 10; width: 100%; max-width: 1200px; margin: 0 auto; padding: 8rem 2rem 4rem; }
.fb-cat-hero-inner { max-width: 640px; }

@keyframes fb-cat-blur-slide {
  0% { opacity: 0; filter: blur(12px); transform: translateY(12px); }
  100% { opacity: 1; filter: blur(0); transform: translateY(0); }
}
.fb-cat-animate { opacity: 0; animation: 1.2s cubic-bezier(0.22, 1, 0.36, 1) forwards fb-cat-blur-slide; }
.fb-cat-delay-1 { animation-delay: 0.3s; }
.fb-cat-delay-2 { animation-delay: 0.45s; }
.fb-cat-delay-3 { animation-delay: 0.6s; }

.fb-cat-hero-label { font-family: Lato, sans-serif; font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; color: rgba(255, 255, 255, 0.5); margin-bottom: 0.75rem; }
.fb-cat-hero-headline { font-family: Lato, sans-serif; font-size: clamp(2.4rem, 5vw, 3.5rem); font-weight: 900; line-height: 1.1; letter-spacing: -0.02em; color: #fff; margin-bottom: 1rem; }
.fb-cat-hero-sub { font-family: Merriweather, Georgia, serif; font-size: clamp(1rem, 2vw, 1.15rem); color: rgba(255, 255, 255, 0.55); line-height: 1.75; font-weight: 300; }
.fb-cat-hero-back { display: inline-flex; align-items: center; gap: 6px; font-family: Lato, sans-serif; font-size: 0.875rem; font-weight: 700; color: rgba(255, 255, 255, 0.5); text-decoration: none; margin-top: 1.5rem; transition: color 0.2s; }
.fb-cat-hero-back:hover { color: rgba(255, 255, 255, 0.8); }

@media (prefers-reduced-motion: reduce) { .fb-cat-animate { animation: none; opacity: 1; filter: none; transform: none; } }
@media (max-width: 768px) { .fb-cat-hero { min-height: 50vh; } .fb-cat-hero-content { padding: 6.5rem 1.5rem 3rem; } }
@media (max-width: 480px) { .fb-cat-hero { min-height: 45vh; } .fb-cat-hero-content { padding: 6rem 1.25rem 2.5rem; } }

/* === THE SIGNAL GRID === */
.fb-cat-grid { max-width: 1200px; margin: 0 auto; padding: 60px 40px; display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 32px; }
.fb-cat-card { display: flex; flex-direction: column; background: #fff; border-radius: 12px; overflow: hidden; box-shadow: 0 1px 3px rgba(0,0,0,0.08); text-decoration: none; color: inherit; transition: transform 0.2s, box-shadow 0.2s; }
.fb-cat-card:hover { transform: translateY(-4px); box-shadow: 0 8px 24px rgba(0,0,0,0.12); }
.fb-cat-card__image { width: 100%; height: 200px; object-fit: cover; }
.fb-cat-card__body { padding: 24px; }
.fb-cat-card__date { font-family: Lato, sans-serif; font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: #a09889; margin-bottom: 8px; }
.fb-cat-card__title { font-family: Lato, sans-serif; font-size: 1.25rem; font-weight: 700; line-height: 1.3; color: #2f2a25; margin-bottom: 8px; }
.fb-cat-card__excerpt { font-family: Merriweather, Georgia, serif; font-size: 0.875rem; line-height: 1.6; color: #6b635a; }
.fb-cat-empty { text-align: center; padding: 80px 40px; font-family: Merriweather, Georgia, serif; font-size: 1.125rem; color: #6b635a; }

@media (max-width: 767px) { .fb-cat-grid { padding: 40px 24px; grid-template-columns: 1fr; } }

/* === THE SIGNAL BLOG PAGE === */

:root { --fb-cat-color-primary-50: #e6f2fb; --fb-cat-color-primary-100: #cce5f7; --fb-cat-color-primary-200: #99cbef; --fb-cat-color-primary-300: #66b0e7; --fb-cat-color-primary-400: #3396df; --fb-cat-color-primary-500: #0069B1; --fb-cat-color-primary-600: #005a97; --fb-cat-color-primary-700: #004a7d; --fb-cat-color-primary-800: #003a63; --fb-cat-color-primary-900: #002a49; --fb-cat-color-primary-950: #001a2f; --fb-cat-color-secondary-50: #fef9f0; --fb-cat-color-secondary-100: #fce8ce; --fb-cat-color-secondary-200: #f9d89e; --fb-cat-color-secondary-300: #f5c26f; --fb-cat-color-secondary-400: #f2a84a; --fb-cat-color-secondary-500: #ED8C2A; --fb-cat-color-secondary-600: #d87520; --fb-cat-color-secondary-700: #b45d19; --fb-cat-color-secondary-800: #8d4513; --fb-cat-color-secondary-900: #6a330c; --fb-cat-color-neutral-50: #faf9f7; --fb-cat-color-neutral-100: #f3f1ed; --fb-cat-color-neutral-200: #ebe8e2; --fb-cat-color-neutral-300: #ddd8cf; --fb-cat-color-neutral-400: #cfc6ba; --fb-cat-color-neutral-500: #b8aca0; --fb-cat-color-neutral-600: #a09889; --fb-cat-color-neutral-700: #897e75; --fb-cat-color-neutral-800: #6b635a; --fb-cat-color-neutral-900: #4a453d; --fb-cat-color-neutral-950: #2f2a25; --fb-cat-font-heading: 'Lato', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; --fb-cat-font-body: 'Merriweather', Georgia, 'Times New Roman', serif; --fb-cat-section-padding-desktop: 80px; --fb-cat-section-padding-tablet: 60px; --fb-cat-section-padding-mobile: 48px; --fb-cat-section-padding-tiny: 36px; --fb-cat-shadow-sm: 0 1px 2px 0 rgba(0,0,0,0.05); --fb-cat-shadow-md: 0 4px 6px -1px rgba(0,0,0,0.1), 0 2px 4px -1px rgba(0,0,0,0.06); --fb-cat-shadow-lg: 0 10px 15px -3px rgba(0,0,0,0.1), 0 4px 6px -2px rgba(0,0,0,0.05); }

.fb-cat-signal *, .fb-cat-signal ::before, .fb-cat-signal ::after { margin: 0px; padding: 0px; box-sizing: border-box; }

.fb-cat-signal { font-family: var(--fb-cat-font-body); color: var(--fb-cat-color-neutral-950); line-height: 1.7; -webkit-font-smoothing: antialiased; }

.fb-cat-signal img { max-width: 100%; height: auto; display: block; }

.fb-cat-signal a { text-decoration: none; color: inherit; }

.fb-cat-container { max-width: 1200px; margin: 0px auto; padding: 0px 40px; }

.fb-cat-container--narrow { max-width: 800px; margin: 0px auto; padding: 0px 40px; }

.fb-cat-section { padding: var(--fb-cat-section-padding-desktop) 0; }

.fb-cat-section--white { background-color: rgb(255, 255, 255); }

.fb-cat-section--light { background-color: var(--fb-cat-color-neutral-50); }

.fb-cat-section--dark { background-color: var(--fb-cat-color-primary-900); color: rgb(255, 255, 255); }

.fb-cat-section--cta { background: linear-gradient(135deg, var(--fb-cat-color-primary-800), var(--fb-cat-color-primary-900)); color: rgb(255, 255, 255); }

.fb-cat-display { font-family: var(--fb-cat-font-heading); font-size: 3.5rem; font-weight: 900; line-height: 1.1; letter-spacing: -0.02em; }

.fb-cat-h1 { font-family: var(--fb-cat-font-heading); font-size: 2.25rem; font-weight: 700; line-height: 1.25; letter-spacing: -0.02em; }

.fb-cat-h2 { font-family: var(--fb-cat-font-heading); font-size: 1.875rem; font-weight: 700; line-height: 1.25; }

.fb-cat-h3 { font-family: var(--fb-cat-font-heading); font-size: 1.5rem; font-weight: 700; line-height: 1.3; }

.fb-cat-body-lg { font-family: var(--fb-cat-font-body); font-size: 1.125rem; line-height: 1.7; }

.fb-cat-body { font-family: var(--fb-cat-font-body); font-size: 1rem; line-height: 1.7; }

.fb-cat-overline { font-family: var(--fb-cat-font-heading); font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; }

.fb-cat-btn { display: inline-block; font-family: var(--fb-cat-font-heading); font-size: 1rem; font-weight: 700; padding: 14px 32px; border-radius: 8px; border: 2px solid transparent; cursor: pointer; text-align: center; text-decoration: none; transition: 0.2s; line-height: 1.2; }

.fb-cat-btn--primary { background-color: var(--fb-cat-color-secondary-500); color: rgb(255, 255, 255); border-color: var(--fb-cat-color-secondary-500); }

.fb-cat-btn--primary:hover { background-color: var(--fb-cat-color-secondary-600); border-color: var(--fb-cat-color-secondary-600); transform: translateY(-1px); box-shadow: var(--fb-cat-shadow-md); }

.fb-cat-btn--secondary { background-color: transparent; color: var(--fb-cat-color-primary-500); border-color: var(--fb-cat-color-primary-500); }

.fb-cat-btn--secondary:hover { background-color: var(--fb-cat-color-primary-50); transform: translateY(-1px); }

.fb-cat-btn--ghost { background-color: transparent; color: var(--fb-cat-color-neutral-800); border-color: var(--fb-cat-color-neutral-400); }

.fb-cat-btn--ghost:hover { background-color: var(--fb-cat-color-neutral-100); border-color: var(--fb-cat-color-neutral-800); }

.fb-cat-btn--primary-light { background-color: rgb(255, 255, 255); color: var(--fb-cat-color-primary-900); border-color: rgb(255, 255, 255); }

.fb-cat-btn--primary-light:hover { background-color: var(--fb-cat-color-neutral-50); border-color: var(--fb-cat-color-neutral-50); transform: translateY(-1px); }

.fb-cat-btn--ghost-light { background-color: transparent; color: rgb(255, 255, 255); border-color: rgba(255, 255, 255, 0.4); }

.fb-cat-btn--ghost-light:hover { border-color: rgba(255, 255, 255, 0.8); background-color: rgba(255, 255, 255, 0.1); }

.fb-cat-btn-group { display: flex; gap: 16px; flex-wrap: wrap; }

.fb-cat-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; }

.fb-cat-card { background: rgb(255, 255, 255); border-radius: 8px; overflow: hidden; box-shadow: var(--fb-cat-shadow-sm); transition: 0.2s; }

.fb-cat-card:hover { box-shadow: var(--fb-cat-shadow-lg); transform: translateY(-4px); }

.fb-cat-card__image { width: 100%; height: 240px; object-fit: cover; }

.fb-cat-card__content { padding: 24px; }

.fb-cat-card__date { font-family: var(--fb-cat-font-heading); font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; color: var(--fb-cat-color-primary-500); margin-bottom: 8px; }

.fb-cat-card__title { font-family: var(--fb-cat-font-heading); font-size: 1.25rem; font-weight: 700; line-height: 1.3; margin-bottom: 12px; color: var(--fb-cat-color-neutral-950); }

.fb-cat-card__excerpt { font-family: var(--fb-cat-font-body); font-size: 0.95rem; line-height: 1.6; color: var(--fb-cat-color-neutral-700); margin-bottom: 16px; }

.fb-cat-card__link { font-family: var(--fb-cat-font-heading); font-size: 0.875rem; font-weight: 700; color: var(--fb-cat-color-primary-500); text-transform: uppercase; letter-spacing: 0.05em; transition: 0.2s; }

.fb-cat-card__link:hover { color: var(--fb-cat-color-secondary-500); }

@media (max-width: 991px) {
  .fb-cat-section { padding: var(--fb-cat-section-padding-tablet) 0; }
  .fb-cat-container, .fb-cat-container--narrow { padding: 0px 32px; }
  .fb-cat-display { font-size: 2.8rem; }
  .fb-cat-h1 { font-size: 2rem; }
  .fb-cat-h2 { font-size: 1.625rem; }
  .fb-cat-grid { grid-template-columns: repeat(2, 1fr); gap: 24px; }
}

@media (max-width: 767px) {
  .fb-cat-section { padding: var(--fb-cat-section-padding-mobile) 0; }
  .fb-cat-container, .fb-cat-container--narrow { padding: 0px 24px; }
  .fb-cat-display { font-size: 2.25rem; }
  .fb-cat-h1 { font-size: 1.75rem; }
  .fb-cat-h2 { font-size: 1.5rem; }
  .fb-cat-h3 { font-size: 1.25rem; }
  .fb-cat-grid { grid-template-columns: 1fr; }
  .fb-cat-card__title { font-size: 1.125rem; }
}

@media (max-width: 479px) {
  .fb-cat-section { padding: var(--fb-cat-section-padding-tiny) 0; }
  .fb-cat-container, .fb-cat-container--narrow { padding: 0px 20px; }
  .fb-cat-display { font-size: 1.875rem; }
  .fb-cat-h1 { font-size: 1.5rem; }
  .fb-cat-h2 { font-size: 1.375rem; }
  .fb-cat-h3 { font-size: 1.125rem; }
  .fb-cat-btn-group { flex-direction: column; }
  .fb-cat-btn { width: 100%; }
}
