/* ==========================================================
   FMB SEARCH / 404 / ARCHIVE UTILITY PAGES
   ========================================================== */

.fmb-utility-page { background: var(--fmb-cream); color: var(--fmb-heading); }
.fmb-utility-page__shell { width: 100%; max-width: var(--fmb-content-width); margin-inline: auto; padding-inline: var(--fmb-gutter); }

.fmb-utility-hero { position: relative; overflow: hidden; padding: clamp(48px,6vw,78px) 0; background: radial-gradient(circle at 88% 12%,rgba(212,182,120,.13),transparent 31%),linear-gradient(145deg,var(--fmb-navy),var(--fmb-navy-dark)); color: var(--fmb-white); }
.fmb-utility-hero::after { position: absolute; right: -130px; top: -230px; width: 470px; height: 470px; border: 1px solid rgba(212,182,120,.08); border-radius: 50%; content: ""; pointer-events: none; }
.fmb-utility-hero__grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0,1.15fr) minmax(330px,.65fr); align-items: center; gap: clamp(36px,5vw,76px); }
.fmb-utility-hero__eyebrow { display: flex; gap: 12px; align-items: center; margin: 0 0 15px; color: var(--fmb-gold); font-size: .72rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.fmb-utility-hero__eyebrow::before { width: 28px; height: 1px; background: currentColor; content: ""; }
.fmb-utility-hero h1 { max-width: 900px; margin: 0; font-family: var(--fmb-font-display); font-size: clamp(2.8rem,5vw,5rem); line-height: 1; letter-spacing: -.045em; }
.fmb-utility-hero__copy { max-width: 780px; margin: 20px 0 0; color: rgba(255,255,255,.7); font-size: 1rem; line-height: 1.75; }
.fmb-utility-hero__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 26px; }

.fmb-utility-panel { padding: 24px; border: 1px solid rgba(212,182,120,.25); border-radius: var(--fmb-radius-md); background: rgba(255,255,255,.055); }
.fmb-utility-panel > span { display: block; margin-bottom: 8px; color: var(--fmb-gold); font-size: .65rem; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.fmb-utility-panel h2 { margin: 0 0 8px; font-family: var(--fmb-font-display); font-size: 1.7rem; line-height: 1.15; }
.fmb-utility-panel p { margin: 0 0 16px; color: rgba(255,255,255,.65); font-size: .9rem; line-height: 1.68; }

.fmb-utility-panel .search-form,
.fmb-utility-search-box .search-form { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 8px; }
.fmb-utility-panel .search-form label,
.fmb-utility-search-box .search-form label { display: block; }
.fmb-utility-panel .search-field,
.fmb-utility-search-box .search-field { width: 100%; min-height: 49px; padding: 11px 14px; border: 1px solid var(--fmb-border); border-radius: var(--fmb-radius-sm); outline: 0; background: var(--fmb-white); color: var(--fmb-heading); }
.fmb-utility-panel .search-submit,
.fmb-utility-search-box .search-submit { min-height: 49px; padding: 11px 18px; border: 1px solid var(--fmb-gold); border-radius: var(--fmb-radius-sm); background: var(--fmb-gold); color: var(--fmb-navy-dark); font-weight: 700; cursor: pointer; }

.fmb-utility-section { padding: clamp(46px,5vw,70px) 0; }
.fmb-utility-section--white { background: var(--fmb-white); }
.fmb-utility-heading { display: grid; grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr); align-items: end; gap: 44px; margin-bottom: 26px; }
.fmb-utility-heading span { display: block; margin-bottom: 8px; color: var(--fmb-gold-text); font-size: .68rem; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.fmb-utility-heading h2 { margin: 0; font-family: var(--fmb-font-display); font-size: clamp(2rem,3.7vw,3.3rem); line-height: 1.05; letter-spacing: -.035em; }
.fmb-utility-heading p { max-width: 720px; margin: 0; color: var(--fmb-body); font-size: 1rem; line-height: 1.72; }

.fmb-content-card-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.fmb-content-card { display: flex; min-width: 0; flex-direction: column; overflow: hidden; border: 1px solid var(--fmb-border); border-radius: var(--fmb-radius-md); background: var(--fmb-white); transition: transform var(--fmb-transition),border-color var(--fmb-transition),box-shadow var(--fmb-transition); }
.fmb-content-card:hover { border-color: rgba(168,130,58,.4); box-shadow: var(--fmb-shadow-sm); transform: translateY(-3px); }
.fmb-content-card__image { position: relative; display: block; aspect-ratio: 16/9; overflow: hidden; background: linear-gradient(145deg,var(--fmb-navy),var(--fmb-navy-dark)); text-decoration: none; }
.fmb-content-card__image img { width: 100%; height: 100%; object-fit: cover; }
.fmb-content-card__fallback { position: absolute; inset: 0; display: grid; place-items: center; color: var(--fmb-gold); font-family: var(--fmb-font-display); font-size: 2rem; font-weight: 800; }
.fmb-content-card__body { display: flex; flex: 1; flex-direction: column; padding: 20px; }
.fmb-content-card__meta { display: flex; flex-wrap: wrap; gap: 7px 10px; margin-bottom: 11px; color: var(--fmb-muted); font-size: .63rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.fmb-content-card__type { color: var(--fmb-gold-dark); }
.fmb-content-card__title { margin: 0 0 9px; font-family: var(--fmb-font-display); font-size: 1.45rem; line-height: 1.17; }
.fmb-content-card__title a { color: var(--fmb-heading); text-decoration: none; }
.fmb-content-card__title a:hover { color: var(--fmb-gold-dark); }
.fmb-content-card__excerpt { margin: 0 0 15px; color: var(--fmb-body); font-size: .9rem; line-height: 1.68; }
.fmb-content-card__link { margin-top: auto; color: var(--fmb-heading); font-size: .73rem; font-weight: 700; text-decoration: none; }

.fmb-topic-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.fmb-topic-card { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 18px 19px; border: 1px solid var(--fmb-border); border-radius: var(--fmb-radius-md); background: var(--fmb-white); color: var(--fmb-heading); text-decoration: none; transition: border-color var(--fmb-transition),transform var(--fmb-transition); }
.fmb-topic-card:hover { border-color: rgba(168,130,58,.45); transform: translateY(-2px); }
.fmb-topic-card span:first-child { font-family: var(--fmb-font-display); font-size: 1.2rem; font-weight: 800; }
.fmb-topic-card span:last-child { color: var(--fmb-gold-dark); }

.fmb-destination-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; }
.fmb-destination-card { display: flex; min-height: 210px; flex-direction: column; padding: 22px; border: 1px solid var(--fmb-border); border-radius: var(--fmb-radius-md); background: var(--fmb-white); text-decoration: none; transition: border-color var(--fmb-transition),transform var(--fmb-transition),box-shadow var(--fmb-transition); }
.fmb-destination-card:hover { border-color: rgba(168,130,58,.45); box-shadow: var(--fmb-shadow-sm); transform: translateY(-3px); }
.fmb-destination-card small { color: var(--fmb-gold-text); font-size: .66rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.fmb-destination-card h3 { margin: 10px 0 8px; font-family: var(--fmb-font-display); font-size: 1.55rem; line-height: 1.15; }
.fmb-destination-card p { margin: 0 0 16px; color: var(--fmb-body); font-size: .9rem; line-height: 1.66; }
.fmb-destination-card strong { margin-top: auto; font-size: .75rem; }

.fmb-utility-empty { display: grid; grid-template-columns: minmax(0,1fr) minmax(280px,.55fr); gap: 26px; padding: 28px; border: 1px solid var(--fmb-border); border-radius: var(--fmb-radius-md); background: var(--fmb-white); }
.fmb-utility-empty h2 { margin: 0 0 10px; font-family: var(--fmb-font-display); font-size: clamp(2rem,3vw,2.8rem); line-height: 1.08; }
.fmb-utility-empty p { margin: 0; color: var(--fmb-body); line-height: 1.7; }
.fmb-utility-search-box { padding: 20px; border: 1px solid rgba(168,130,58,.25); background: var(--fmb-cream); }

.fmb-pagination { display: flex; flex-wrap: wrap; justify-content: center; gap: 7px; margin-top: 34px; }
.fmb-pagination .page-numbers { display: inline-flex; min-width: 42px; min-height: 42px; align-items: center; justify-content: center; padding: 8px 12px; border: 1px solid var(--fmb-border); border-radius: var(--fmb-radius-sm); background: var(--fmb-white); color: var(--fmb-heading); font-size: .76rem; font-weight: 700; text-decoration: none; }
.fmb-pagination .current,
.fmb-pagination a:hover { border-color: var(--fmb-navy); background: var(--fmb-navy); color: var(--fmb-white); }

.fmb-utility-help { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 24px; padding: 22px 24px; border: 1px solid rgba(168,130,58,.25); border-radius: var(--fmb-radius-md); background: var(--fmb-cream-dark); }
.fmb-utility-help h2 { margin: 0 0 6px; font-family: var(--fmb-font-display); font-size: 1.6rem; }
.fmb-utility-help p { margin: 0; color: var(--fmb-body); font-size: .9rem; line-height: 1.68; }

@media (max-width: 1000px) {
  .fmb-utility-hero__grid { grid-template-columns: 1fr; }
  .fmb-utility-panel { max-width: 700px; }
  .fmb-content-card-grid,
  .fmb-topic-grid,
  .fmb-destination-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 700px) {
  .fmb-utility-hero { padding: 42px 0; }
  .fmb-utility-hero h1 { font-size: clamp(2.5rem,12vw,3.7rem); }
  .fmb-utility-panel .search-form,
  .fmb-utility-search-box .search-form { grid-template-columns: 1fr; }
  .fmb-utility-heading { grid-template-columns: 1fr; gap: 14px; }
  .fmb-content-card-grid,
  .fmb-topic-grid,
  .fmb-destination-grid { grid-template-columns: 1fr; }
  .fmb-utility-empty { grid-template-columns: 1fr; padding: 22px 20px; }
  .fmb-utility-help { grid-template-columns: 1fr; }
}
.fmb-generic-entry { width: min(100%, 900px); margin-inline: auto; color: var(--fmb-body); font-size: 1rem; line-height: 1.8; }
.fmb-generic-entry h2, .fmb-generic-entry h3 { color: var(--fmb-heading); font-family: var(--fmb-font-display); }
.fmb-utility-newsletter { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 28px; padding: 28px; border: 1px solid rgba(212,182,120,.25); border-radius: var(--fmb-radius-md); background: linear-gradient(145deg,var(--fmb-navy),var(--fmb-navy-dark)); color: var(--fmb-white); }
.fmb-utility-newsletter > div > span { display: block; margin-bottom: 7px; color: var(--fmb-gold); font-size: .64rem; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.fmb-utility-newsletter h2 { margin: 0 0 7px; font-family: var(--fmb-font-display); font-size: 1.8rem; }
.fmb-utility-newsletter p { margin: 0; color: rgba(255,255,255,.66); font-size: .84rem; }
@media (max-width: 700px) { .fmb-utility-newsletter { grid-template-columns: 1fr; } }


/* 404-specific signal: prominent but restrained, using the global FMB palette. */
.fmb-404-code {
  margin-bottom: 8px;
  color: rgba(212, 182, 120, 0.22);
  font-family: var(--fmb-font-display);
  font-size: clamp(4.8rem, 10vw, 8.5rem);
  font-weight: 800;
  line-height: 0.8;
  letter-spacing: -0.065em;
}
.fmb-404-page .fmb-utility-hero h1 { max-width: 980px; }
@media (max-width: 700px) {
  .fmb-404-code { margin-bottom: 14px; }
}
