/*
Theme Name: Florida's Best Fishing 2026
Theme URI: https://floridasbestfishing.com/
Description: GeneratePress child theme. Coastal-heritage design system — navy, bone and brass, Clarendon slab display, engraved rules. Replaces the Customizer Additional CSS.
Author: Florida's Best Fishing
Template: generatepress
Version: 1.0.0
*/

/* Self-hosted webfonts — no Google Fonts request, no CLS, no third party. */
@font-face{font-family:'Bevan';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/bevan-400.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Sanchez';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/sanchez-400.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Cinzel';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/cinzel-400.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Cinzel';font-style:normal;font-weight:600;font-display:swap;src:url('fonts/cinzel-600.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Source Serif 4';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/sourceserif-400.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Source Serif 4';font-style:normal;font-weight:600;font-display:swap;src:url('fonts/sourceserif-600.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Source Serif 4';font-style:normal;font-weight:700;font-display:swap;src:url('fonts/sourceserif-700.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Source Serif 4';font-style:italic;font-weight:400;font-display:swap;src:url('fonts/sourceserif-400i.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}

/* ==========================================================================
   1. TOKENS
   ========================================================================== */

:root {
  /* surface + ink */
  --fbf-navy:       #0B2A3C;   /* header, footer, display headings */
  --fbf-navy-deep:  #08202E;   /* masthead bar */
  --fbf-deep:       #0F3A50;   /* utility bar, secondary surfaces, links */
  --fbf-paper:      #F4EFE6;   /* page background (bone) */
  --fbf-card:       #FFFFFF;
  --fbf-rule:       #E0D6C4;   /* hairlines, card borders */
  --fbf-rule-soft:  #EFE7D9;
  --fbf-ink:        #16232C;   /* body text */
  --fbf-ink-soft:   #46565F;
  --fbf-steel:      #77868F;   /* meta, captions */

  /* accent — brass is a SURFACE colour, never body text on light.
     #C9A24B on bone is ~2:1. --fbf-brass-ink is the AA-safe text variant. */
  --fbf-brass:      #C9A24B;
  --fbf-brass-ink:  #8A6D24;
  --fbf-brass-dark: #A07F32;

  /* type */
  --fbf-display: 'Bevan', Rockwell, 'Courier Bold', Georgia, serif;
  --fbf-head:    'Sanchez', Rockwell, Georgia, serif;
  --fbf-body:    'Source Serif 4', Georgia, 'Times New Roman', serif;
  --fbf-label:   'Cinzel', 'Trajan Pro', Georgia, serif;

  /* rhythm */
  --fbf-measure: 68ch;
  --fbf-gap:     clamp(1.5rem, 3vw, 2.75rem);
}

/* ==========================================================================
   2. BASE
   ========================================================================== */

body {
  background-color: var(--fbf-paper);
  color: var(--fbf-ink);
  font-family: var(--fbf-body);
  font-size: 18px;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}

.separate-containers .inside-article,
.separate-containers .comments-area,
.separate-containers .page-header,
.separate-containers .paging-navigation,
.one-container .container,
.inside-page-header {
  background-color: var(--fbf-card);
}

/* Display + headings ------------------------------------------------------ */

h1, h2, h3, h4, h5, h6 {
  color: var(--fbf-navy);
  font-weight: 400;
  letter-spacing: 0;
}

h1, .entry-title {
  font-family: var(--fbf-display);
  font-size: clamp(1.85rem, 1.1rem + 2.6vw, 2.7rem);
  line-height: 1.14;
  letter-spacing: -0.01em;
}

h2 {
  font-family: var(--fbf-head);
  font-size: clamp(1.4rem, 1.1rem + 1.1vw, 1.72rem);
  line-height: 1.26;
  margin-top: 2.4em;
  margin-bottom: .6em;
  padding-top: .7em;
  border-top: 1px solid var(--fbf-rule);
}

h3 {
  font-family: var(--fbf-head);
  font-size: 1.24rem;
  line-height: 1.32;
  margin-top: 1.9em;
  margin-bottom: .5em;
  color: var(--fbf-deep);
}

h4 {
  font-family: var(--fbf-label);
  font-weight: 600;
  font-size: 1rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  margin-top: 1.8em;
}

/* the first heading in a body shouldn't carry a rule right under the title */
.entry-content > h2:first-child { border-top: 0; margin-top: 0; padding-top: 0; }

p { margin-bottom: 1.35em; }

/* Links ------------------------------------------------------------------- */

a { color: var(--fbf-deep); text-decoration: none; }

.entry-content a:not(.button):not(.wp-block-button__link) {
  color: var(--fbf-deep);
  font-weight: 600;
  background-image: linear-gradient(var(--fbf-brass), var(--fbf-brass));
  background-size: 100% 1px;
  background-position: 0 100%;
  background-repeat: no-repeat;
  transition: background-size .18s ease, color .18s ease;
  padding-bottom: 1px;
}

.entry-content a:not(.button):not(.wp-block-button__link):hover,
.entry-content a:not(.button):not(.wp-block-button__link):focus {
  color: var(--fbf-brass-ink);
  background-size: 100% 2px;
}

strong { color: var(--fbf-navy); font-weight: 700; }

/* Lists ------------------------------------------------------------------- */

.entry-content ul, .entry-content ol { margin: 0 0 1.5em 1.3em; }
.entry-content li { margin-bottom: .5em; }

.entry-content ul li::marker { color: var(--fbf-brass); }
.entry-content ol li::marker { color: var(--fbf-brass-ink); font-weight: 700; }

/* Rules, quotes, tables --------------------------------------------------- */

.entry-content hr {
  border: 0;
  height: 0;
  border-top: 1px solid var(--fbf-brass);
  margin: 3rem auto;
  max-width: 180px;
  opacity: .8;
}

blockquote {
  margin: 2rem 0;
  padding: .2rem 0 .2rem 1.6rem;
  border-left: 3px solid var(--fbf-brass);
  font-size: 1.06em;
  font-style: italic;
  color: var(--fbf-ink-soft);
}

blockquote p:last-child { margin-bottom: 0; }

.entry-content table {
  width: 100%;
  border-collapse: collapse;
  margin: 1.8rem 0;
  font-size: .95em;
  font-variant-numeric: tabular-nums;
}

.entry-content th {
  font-family: var(--fbf-label);
  font-weight: 600;
  font-size: .78em;
  letter-spacing: .1em;
  text-transform: uppercase;
  text-align: left;
  color: var(--fbf-paper);
  background: var(--fbf-navy);
  padding: .7rem .85rem;
}

.entry-content td {
  padding: .7rem .85rem;
  border-bottom: 1px solid var(--fbf-rule);
  vertical-align: top;
}

.entry-content tbody tr:nth-child(even) td { background: #FBF8F2; }

/* wide tables (FWC regulations) must scroll, not break the page */
.entry-content table { display: block; overflow-x: auto; white-space: normal; }
@media (min-width: 720px) { .entry-content table { display: table; } }

/* Code / small print ------------------------------------------------------ */

.fbf-disclosure {
  font-family: var(--fbf-body);
  font-size: .82rem;
  line-height: 1.55;
  color: var(--fbf-steel);
  font-style: italic;
  border-left: 2px solid var(--fbf-rule);
  padding: .1rem 0 .1rem .9rem;
  margin: 0 0 2rem;
}

/* ==========================================================================
   3. HEADER + NAVIGATION
   ========================================================================== */

.site-header {
  background-color: var(--fbf-navy);
  padding: 18px 0 0;
  border-bottom: 0;
}

.site-logo { margin: 0; }

.site-logo img {
  width: 380px;
  max-width: 100%;
  height: auto;
  display: block;
}

.main-navigation,
.main-navigation ul ul {
  background-color: var(--fbf-navy);
}

.main-navigation .inside-navigation {
  border-top: 1px solid rgba(244, 239, 230, .16);
}

.main-navigation .main-nav ul li a {
  font-family: var(--fbf-label);
  font-weight: 600;
  font-size: 13px;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: #DCE5E9;
  padding-left: 16px;
  padding-right: 16px;
}

.main-navigation .main-nav ul li:not([class*="current-menu-"]):hover > a,
.main-navigation .main-nav ul li:not([class*="current-menu-"]):focus > a,
.main-navigation .main-nav ul li.sfHover:not([class*="current-menu-"]) > a,
.main-navigation .main-nav ul li[class*="current-menu-"] > a {
  color: var(--fbf-brass);
  background: transparent;
}

/* dropdowns */
.main-navigation ul ul {
  border-top: 2px solid var(--fbf-brass);
  box-shadow: 0 14px 32px rgba(8, 32, 46, .28);
  min-width: 240px;
}

.main-navigation ul ul li a {
  font-size: 12px;
  letter-spacing: .12em;
  padding: 11px 18px;
  border-bottom: 1px solid rgba(244, 239, 230, .07);
}

.main-navigation .menu-toggle,
.main-navigation .menu-bar-items {
  font-family: var(--fbf-label);
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--fbf-paper);
}

/* sticky header on scroll */
.main-navigation.is-stuck,
.main-navigation.navigation-stick {
  box-shadow: 0 2px 18px rgba(8, 32, 46, .3);
}

/* ==========================================================================
   4. CONTENT SHELL
   ========================================================================== */

.site-content { padding-top: var(--fbf-gap); }

.separate-containers .inside-article {
  padding: clamp(1.5rem, 4vw, 3.25rem);
}

/* keep prose to a readable measure even in a full-width container */
.entry-content > *:not(.alignwide):not(.alignfull):not(.fbf-full) {
  max-width: var(--fbf-measure);
}

.single .entry-content > *:not(.alignwide):not(.alignfull):not(.fbf-full) {
  margin-left: auto;
  margin-right: auto;
}

/* Entry header ------------------------------------------------------------ */

.entry-header { margin-bottom: 1.6rem; }

.entry-meta,
.entry-meta a {
  font-family: var(--fbf-label);
  font-weight: 600;
  font-size: .72rem;
  letter-spacing: .13em;
  text-transform: uppercase;
  color: var(--fbf-steel);
}

.entry-meta a { color: var(--fbf-brass-ink); }

.fbf-byline-name { color: var(--fbf-brass-ink); }

/* Featured images --------------------------------------------------------- */

.page-header-image img.wp-post-image,
.featured-image img.wp-post-image,
.post-image img {
  width: 100%;
  max-height: 420px;
  object-fit: cover;
  object-position: center;
  display: block;
}

@media (max-width: 768px) {
  .page-header-image img.wp-post-image,
  .featured-image img.wp-post-image,
  .post-image img { max-height: 240px; }
}

/* ==========================================================================
   5. TABLE OF CONTENTS + ARTICLE LAYOUT
   ========================================================================== */

.fbf-article { position: relative; }

.fbf-toc {
  border: 1px solid var(--fbf-rule);
  background: #FBF8F2;
  padding: 1.15rem 1.3rem;
  margin: 0 auto 2.4rem;
  max-width: var(--fbf-measure);
}

.fbf-toc__title {
  font-family: var(--fbf-label) !important;
  font-weight: 600;
  font-size: .74rem !important;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--fbf-steel);
  margin: 0 0 .6rem !important;
  padding: 0 !important;
  border: 0 !important;
}

.fbf-toc ul { margin: 0; padding: 0; list-style: none; }
.fbf-toc li { margin: 0 0 .38rem; }

.fbf-toc a {
  font-family: var(--fbf-body);
  font-size: .94rem;
  color: var(--fbf-deep);
  font-weight: 600;
  background: none !important;
  padding: 0 !important;
}

.fbf-toc a:hover { color: var(--fbf-brass-ink); }

@media (min-width: 1100px) {
  .single .fbf-article {
    display: grid;
    grid-template-columns: 218px minmax(0, 1fr);
    gap: 2.6rem;
    align-items: start;
  }
  .single .fbf-toc {
    position: sticky;
    top: 96px;
    margin: 0;
    background: transparent;
    border: 0;
    border-left: 1px solid var(--fbf-rule);
    padding: .2rem 0 .2rem 1.1rem;
    max-height: calc(100vh - 140px);
    overflow-y: auto;
  }
  .single .fbf-article__body > *:not(.alignwide):not(.alignfull):not(.fbf-full) {
    margin-left: 0;
    margin-right: 0;
  }
}

/* ==========================================================================
   6. COMPONENTS
   ========================================================================== */

/* Buttons ----------------------------------------------------------------- */

button,
html input[type="button"],
input[type="reset"],
input[type="submit"],
a.button,
.wp-block-button__link,
.fbf-btn {
  font-family: var(--fbf-label);
  font-weight: 600;
  font-size: .82rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  background-color: var(--fbf-brass);
  color: var(--fbf-navy);
  border: 0;
  border-radius: 2px;
  padding: .85em 1.7em;
  line-height: 1.2;
  transition: background-color .18s ease, color .18s ease;
}

button:hover, button:focus,
input[type="submit"]:hover, input[type="submit"]:focus,
a.button:hover, a.button:focus,
.wp-block-button__link:hover, .wp-block-button__link:focus,
.fbf-btn:hover, .fbf-btn:focus {
  background-color: var(--fbf-brass-dark);
  color: var(--fbf-navy);
}

.fbf-btn--ghost {
  background: transparent;
  color: var(--fbf-brass);
  box-shadow: inset 0 0 0 1px var(--fbf-brass);
}

.fbf-btn--ghost:hover { background: var(--fbf-brass); color: var(--fbf-navy); }

/* on light backgrounds a ghost button needs the AA-safe ink */
.fbf-on-light .fbf-btn--ghost { color: var(--fbf-brass-ink); box-shadow: inset 0 0 0 1px var(--fbf-brass-ink); }

/* Eyebrow + section heads ------------------------------------------------- */

.fbf-eyebrow {
  font-family: var(--fbf-label);
  font-weight: 600;
  font-size: .72rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--fbf-brass-ink);
  display: block;
  margin-bottom: .55rem;
}

.fbf-sectionhead {
  display: flex;
  align-items: baseline;
  gap: 1.1rem;
  margin: 3rem 0 1.4rem;
}

.fbf-sectionhead h2 {
  margin: 0;
  padding: 0;
  border: 0;
  font-family: var(--fbf-display);
  font-size: clamp(1.25rem, 1rem + 1vw, 1.6rem);
  white-space: nowrap;
}

.fbf-sectionhead .fbf-rule { flex: 1; height: 1px; background: var(--fbf-brass); opacity: .75; }

.fbf-sectionhead .fbf-more {
  font-family: var(--fbf-label);
  font-weight: 600;
  font-size: .72rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--fbf-brass-ink);
  white-space: nowrap;
}

/* Cards ------------------------------------------------------------------- */

.fbf-grid { display: grid; gap: 1.4rem; }
.fbf-grid--3 { grid-template-columns: repeat(auto-fit, minmax(255px, 1fr)); }
.fbf-grid--4 { grid-template-columns: repeat(auto-fit, minmax(205px, 1fr)); }
.fbf-grid--2 { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); }

.fbf-card {
  background: var(--fbf-card);
  border: 1px solid var(--fbf-rule);
  border-radius: 2px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: border-color .18s ease, transform .18s ease;
}

.fbf-card:hover { border-color: var(--fbf-brass); }

.fbf-card__media { aspect-ratio: 16 / 9; overflow: hidden; background: var(--fbf-deep); }
.fbf-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; }

.fbf-card__body { padding: 1.05rem 1.15rem 1.25rem; flex: 1; display: flex; flex-direction: column; }

.fbf-card__tag {
  font-family: var(--fbf-label);
  font-weight: 600;
  font-size: .64rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--fbf-deep);
  border: 1px solid var(--fbf-rule);
  padding: .22rem .5rem;
  align-self: flex-start;
  margin-bottom: .65rem;
}

.fbf-card__title {
  font-family: var(--fbf-head);
  font-size: 1.06rem;
  line-height: 1.32;
  margin: 0 0 .5rem;
  color: var(--fbf-navy);
}

.fbf-card__title a { color: inherit; background: none !important; }
.fbf-card:hover .fbf-card__title a { color: var(--fbf-deep); }

.fbf-card__meta {
  font-family: var(--fbf-label);
  font-weight: 600;
  font-size: .64rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--fbf-steel);
  margin-top: auto;
  padding-top: .7rem;
}

/* (The interim homepage h3-card rule was removed once the homepage was rebuilt
   with real card markup — it was colliding with .fbf-card__title.) */

/* ==========================================================================
   7. WIDGETS (solunar / tide / throw / setup)
   ========================================================================== */

.fbf-tide-widget,
[data-fbf-solunar],
[data-fbf-throw],
[data-fbf-setup] {
  margin: 2.2rem auto;
  max-width: var(--fbf-measure);
}

.fbf-tide-widget {
  border: 1px solid var(--fbf-rule);
  background: var(--fbf-card);
  border-radius: 2px;
  padding: 1.2rem;
}

/* ==========================================================================
   8. SIDEBAR + FORMS
   ========================================================================== */

.sidebar .widget {
  background: var(--fbf-card);
  border: 1px solid var(--fbf-rule);
  border-radius: 2px;
  padding: 1.3rem;
}

.widget-title,
.sidebar .widget .widget-title {
  font-family: var(--fbf-label);
  font-weight: 600;
  font-size: .76rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--fbf-steel);
  margin-bottom: .9rem;
}

input[type="text"], input[type="email"], input[type="url"],
input[type="password"], input[type="search"], input[type="tel"],
input[type="number"], textarea, select {
  font-family: var(--fbf-body);
  font-size: 1rem;
  color: var(--fbf-ink);
  background-color: #FFFFFF;
  border: 1px solid var(--fbf-rule);
  border-radius: 2px;
  padding: .7rem .85rem;
}

input:focus, textarea:focus, select:focus {
  border-color: var(--fbf-brass);
  outline: 2px solid rgba(201, 162, 75, .25);
  outline-offset: 1px;
}

/* ==========================================================================
   9. FOOTER
   ========================================================================== */

.site-footer .footer-widgets,
.footer-widgets { background: var(--fbf-navy-deep); }

.site-info {
  background: var(--fbf-navy-deep);
  color: #8FA3AD;
  border-top: 1px solid rgba(244, 239, 230, .1);
  padding: 1.6rem 0;
  font-family: var(--fbf-label);
  font-weight: 600;
  font-size: .72rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  text-align: center;
}

.site-info a { color: var(--fbf-brass); }

/* ==========================================================================
   10. ACCESSIBILITY + MOTION
   ========================================================================== */

a:focus-visible,
button:focus-visible,
input:focus-visible,
[tabindex]:focus-visible {
  outline: 2px solid var(--fbf-brass);
  outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}

html { scroll-behavior: smooth; }
/* TOC anchors shouldn't land under the sticky header */
:target { scroll-margin-top: 100px; }

/* ==========================================================================
   11. HUB PAGES (/species/, /regions/)
   ========================================================================== */

.fbf-pagetitle {
  font-family: var(--fbf-display);
  font-size: clamp(1.9rem, 1.1rem + 2.8vw, 2.8rem);
  line-height: 1.1;
  margin: 0 0 1rem;
  color: var(--fbf-navy);
}

.fbf-lede {
  font-size: 1.12rem;
  line-height: 1.62;
  color: var(--fbf-ink-soft);
  max-width: 62ch;
  margin-bottom: 2.2rem;
}

.fbf-groupblurb {
  color: var(--fbf-steel);
  font-size: .96rem;
  margin: -.7rem 0 1.3rem;
  max-width: 66ch;
}

.fbf-species__sub {
  font-size: .88rem;
  line-height: 1.5;
  color: var(--fbf-ink-soft);
  margin: 0 0 .6rem;
}

/* let a grid escape the reading measure */
.fbf-full { max-width: none !important; width: 100%; }

.fbf-species .fbf-card__body,
.fbf-region .fbf-card__body { padding: 1rem 1.1rem 1.1rem; }

.fbf-species .fbf-card__title { font-family: var(--fbf-display); font-size: 1.02rem; line-height: 1.2; }
.fbf-region  .fbf-card__title { font-family: var(--fbf-display); font-size: .98rem; line-height: 1.24; }

/* ==========================================================================
   12. STICKY HEADER
   ========================================================================== */

.main-navigation {
  position: sticky;
  top: 0;
  z-index: 200;
}

/* the sticky bar needs its own shadow once it detaches from the masthead */
.main-navigation::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: -14px;
  height: 14px;
  background: linear-gradient(rgba(8, 32, 46, .18), transparent);
  pointer-events: none;
}

@media (max-width: 768px) {
  .site-header { padding: 14px 0 0; }
  .site-logo img { width: 260px; }
  .main-navigation .menu-toggle {
    font-family: var(--fbf-label);
    font-size: 12px;
    letter-spacing: .18em;
    padding: 14px 0;
  }
  .main-navigation .main-nav ul li a { padding: 13px 20px; font-size: 13px; }
  .main-navigation ul ul { box-shadow: none; }
}

/* ==========================================================================
   13. ARCHIVE / BLOG GRID
   ========================================================================== */

.archive .site-main,
.blog .site-main,
.search .site-main {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1.5rem;
  align-items: start;
}

.archive .site-main > .page-header,
.blog .site-main > .page-header,
.search .site-main > .page-header,
.archive .site-main > .paging-navigation,
.blog .site-main > .paging-navigation,
.search .site-main > .paging-navigation {
  grid-column: 1 / -1;
}

.archive .site-main > article,
.blog .site-main > article,
.search .site-main > article {
  margin-bottom: 0 !important;
  border: 1px solid var(--fbf-rule);
  background: var(--fbf-card);
  border-radius: 2px;
  transition: border-color .18s ease;
}

.archive .site-main > article:hover,
.blog .site-main > article:hover { border-color: var(--fbf-brass); }

.archive .inside-article,
.blog .inside-article,
.search .inside-article { padding: 0 !important; }

.archive .post-image,
.blog .post-image { margin: 0 !important; }

.archive .post-image img,
.blog .post-image img { aspect-ratio: 16/9; max-height: none; object-fit: cover; }

.archive .entry-header,
.blog .entry-header,
.search .entry-header { padding: 1.1rem 1.2rem 0; margin-bottom: .5rem; }

.archive .entry-summary,
.blog .entry-summary,
.search .entry-summary { padding: 0 1.2rem; font-size: .95rem; color: var(--fbf-ink-soft); }

.archive .entry-meta,
.blog .entry-meta,
.search .entry-meta { padding: 0 1.2rem 1.2rem; }

.archive .entry-title,
.blog .entry-title,
.search .entry-title {
  font-family: var(--fbf-head);
  font-size: 1.14rem;
  line-height: 1.3;
}

.page-header {
  background: transparent !important;
  padding: 0 0 1rem !important;
  border-bottom: 1px solid var(--fbf-rule);
  margin-bottom: 1.4rem;
}

.page-header h1, .page-header .page-title {
  font-family: var(--fbf-display);
  font-size: clamp(1.6rem, 1.1rem + 2vw, 2.3rem);
}

/* The TOC grid must span the container; the measure belongs to the body column,
   not to the wrapper — otherwise the whole two-column layout is squeezed into
   68ch and pushed to the middle of the page. */
.single .entry-content > .fbf-article {
  max-width: none !important;
  width: 100%;
  margin-left: 0;
  margin-right: 0;
}

.single .fbf-article__body > *:not(.alignwide):not(.alignfull):not(.fbf-full) {
  max-width: var(--fbf-measure);
}

@media (max-width: 1099px) {
  .single .fbf-article__body > *:not(.alignwide):not(.alignfull):not(.fbf-full) {
    margin-left: auto;
    margin-right: auto;
  }
}

/* ==========================================================================
   14. HOMEPAGE
   ========================================================================== */

.fbf-hero { padding: .5rem 0 2.2rem; }

.fbf-hero h1 {
  font-family: var(--fbf-display);
  font-size: clamp(2rem, 1.1rem + 3.4vw, 3.1rem);
  line-height: 1.08;
  margin: 0 0 .9rem;
  max-width: 18ch;
}

.fbf-hero .fbf-lede { font-size: 1.16rem; max-width: 56ch; margin-bottom: 1.6rem; }

.fbf-btnrow { display: flex; gap: .8rem; flex-wrap: wrap; }

.fbf-btnrow a {
  display: inline-block;
  text-decoration: none;
  padding: .9em 1.8em;
  /* kill only the link-underline gradient, NOT the button's background-color */
  background-image: none !important;
}

/* Today's Bite strip — full-bleed navy band carrying the live tools */
.fbf-bite {
  background: var(--fbf-navy);
  color: var(--fbf-paper);
  padding: 2rem clamp(1.2rem, 4vw, 2.6rem);
  margin: 0 0 2.4rem;
  border-radius: 2px;
  border: 1px solid rgba(201, 162, 75, .35);
}

.fbf-bite h2 {
  font-family: var(--fbf-display);
  color: var(--fbf-paper);
  border: 0;
  margin: 0 0 .35rem;
  padding: 0;
  font-size: clamp(1.3rem, 1rem + 1.2vw, 1.7rem);
}

.fbf-bite p { color: rgba(244, 239, 230, .78); margin-bottom: 1.3rem; max-width: 60ch; }
.fbf-bite a { color: var(--fbf-brass); }

/* the widgets render on a light card by default; keep them readable in the band */
.fbf-bite [data-fbf-solunar] { margin: 0; max-width: none; }

/* Tools */
.fbf-tool { text-decoration: none; background: none !important; }
.fbf-tool__ic { font-size: 1.3rem; color: var(--fbf-brass-ink); display: block; margin-bottom: .5rem; }
.fbf-tool .fbf-card__title { font-family: var(--fbf-head); font-size: 1rem; }

/* Region index */
.fbf-regionlist {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(215px, 1fr));
  gap: 1px;
  background: var(--fbf-rule);
  border: 1px solid var(--fbf-rule);
  border-radius: 2px;
  overflow: hidden;
}

.fbf-regionlist__item {
  background: var(--fbf-card);
  padding: .95rem 1.1rem;
  font-family: var(--fbf-head);
  font-size: .98rem;
  color: var(--fbf-navy);
  text-decoration: none;
  background-image: none !important;
  transition: background-color .15s ease, color .15s ease;
}

.fbf-regionlist__item:hover { background: var(--fbf-navy); color: var(--fbf-brass); }

.fbf-sectionhead .fbf-more {
  font-family: var(--fbf-label);
  font-weight: 600;
  font-size: .72rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--fbf-brass-ink);
  white-space: nowrap;
  background: none !important;
}

/* the homepage is a full-width layout; don't cage its sections in 68ch */
.home .entry-content > * { max-width: none; }
.home .entry-content > p { max-width: 62ch; }
.home .fbf-hero p { max-width: 56ch; }


/* links inside the navy Today's Bite band need the light-on-dark treatment */
.fbf-bite a {
  color: var(--fbf-brass) !important;
  font-weight: 600;
  background-image: linear-gradient(var(--fbf-brass), var(--fbf-brass)) !important;
  background-size: 100% 1px !important;
  background-position: 0 100% !important;
  background-repeat: no-repeat !important;
}

.fbf-bite a:hover { color: var(--fbf-paper) !important; }

/* card titles must never inherit heading chrome */
.fbf-card__title,
.fbf-card .fbf-card__title {
  background: none !important;
  border: 0 !important;
  padding: 0 !important;
  margin-top: 0;
}

/* the band and its widget must fill the content column */
.fbf-bite { display: block; width: 100%; max-width: none !important; }
.fbf-bite > * { max-width: none; }
.fbf-bite p { max-width: 62ch; }
.fbf-bite [data-fbf-solunar],
.fbf-bite [data-fbf-solunar] > * { width: 100% !important; max-width: none !important; }

/* Section heads are a 3-part flex row (title / rule / more-link). On narrow
   screens the nowrap "more" link pushed the page 4px wide, so let it wrap. */
@media (max-width: 768px) {
  .fbf-sectionhead { flex-wrap: wrap; gap: .5rem .9rem; }
  .fbf-sectionhead h2 { white-space: normal; }
  .fbf-sectionhead .fbf-rule { min-width: 40px; }
  .fbf-sectionhead .fbf-more { white-space: normal; }
}

/* belt-and-braces: nothing should ever create a horizontal scrollbar */
html, body { overflow-x: hidden; max-width: 100%; }

/* ==========================================================================
   15. FOOTER
   ========================================================================== */

.site-info { text-align: left; padding: 2.2rem 0 2rem; }

.fbf-footer { max-width: 1100px; margin: 0 auto; }

.fbf-footer__nav {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem 1.6rem;
  padding-bottom: 1.1rem;
  margin-bottom: 1.1rem;
  border-bottom: 1px solid rgba(201, 162, 75, .28);
}

.fbf-footer__nav a {
  font-family: var(--fbf-label);
  font-weight: 600;
  font-size: .74rem;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: #DCE5E9;
  text-decoration: none;
}

.fbf-footer__nav a:hover { color: var(--fbf-brass); }

.fbf-footer__note {
  font-family: var(--fbf-body);
  font-size: .84rem;
  line-height: 1.6;
  letter-spacing: 0;
  text-transform: none;
  color: #8FA3AD;
  max-width: 72ch;
  margin: 0 0 .9rem;
}

.fbf-footer__note a { color: var(--fbf-brass); }

.fbf-footer__copy {
  font-family: var(--fbf-label);
  font-size: .7rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #6E828C;
  margin: 0;
}

/* `strong` is navy site-wide, which makes bold text INVISIBLE on the navy
   Today's Bite band. Any dark surface needs the light treatment. */
.fbf-bite strong,
.fbf-bite b { color: var(--fbf-paper); }

.fbf-bite em,
.fbf-bite i { color: rgba(244, 239, 230, .9); }

.fbf-bite ul, .fbf-bite ol { color: rgba(244, 239, 230, .88); }
.fbf-bite li::marker { color: var(--fbf-brass); }
