:root { --fp-shadow: 0 18px 50px rgba(10,31,51,.13); }
html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
:where(a, button, input, textarea, select, summary):focus-visible { outline: 3px solid #C7A45A; outline-offset: 3px; }
.wp-site-blocks { min-height: 100vh; }
/* Keep the entire header template part in the scrolling viewport. */
.wp-site-blocks > header.wp-block-template-part {
  position: sticky;
  top: 0;
  z-index: 9999;
}
.admin-bar .wp-site-blocks > header.wp-block-template-part { top: 32px; }
.fp-header {
  position: relative;
  z-index: 1;
  background: rgba(251, 248, 242, .96) !important;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  box-shadow: 0 1px 0 rgba(199,164,90,.22);
}
.fp-kicker { letter-spacing: .15em; text-transform: uppercase; font-weight: 800; }
.fp-portrait img { aspect-ratio: 1; object-fit: cover; border: 6px solid #fff; box-shadow: var(--fp-shadow); }
.fp-card { border: 1px solid #D9CCB7; border-radius: 8px; box-shadow: 0 10px 30px rgba(10,31,51,.07); }
.fp-entry-card { height: 100%; }
.fp-entry-card .wp-block-post-title a { text-decoration: none; }
.fp-rule { width: 64px !important; border-top-width: 4px !important; }
.wp-block-post-content > p:first-of-type { font-size: 1.16em; color: #4A5568; }
.wp-block-post-content a { text-decoration-thickness: .08em; text-underline-offset: .16em; }
.wp-block-navigation__responsive-container.is-menu-open { padding: 2rem; }
.wp-block-button__link { min-height: 44px; display: inline-flex; align-items: center; }
input, textarea, select { border: 1px solid #718096; border-radius: 4px; padding: .7rem; font: inherit; }
@media (max-width: 782px) {
  .fp-home-hero { padding-top: 3rem !important; padding-bottom: 3rem !important; }
  .fp-portrait { max-width: 220px; margin-inline: auto; }
}

/* Refined navy, gold, beige, and red accents */
.fp-kicker { color: #9A742D !important; }
.fp-card { border-color: #D9CCB7; border-top: 3px solid #C7A45A; }
.wp-block-post-title a:hover,
.wp-block-navigation-item__content:hover { color: #A33A32 !important; }
.wp-block-button__link { transition: background-color .18s ease, transform .18s ease; }
.wp-block-button__link:hover { background: #A33A32 !important; transform: translateY(-1px); }
.wp-block-navigation .current-menu-item > .wp-block-navigation-item__content,
.wp-block-navigation .current-menu-ancestor > .wp-block-navigation-item__content {
  color: #A33A32 !important;
  text-decoration-color: #C7A45A;
  text-underline-offset: .35em;
}
::selection { background: #F3EBDD; color: #0A1F33; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
@media print {
  .fp-header, footer, .wp-block-post-navigation-link, .wp-block-comments { display: none !important; }
  body { color: #000; background: #fff; font-size: 11pt; }
  a { color: #000; text-decoration: none; }
}
.fp-blog-sidebar { position: sticky; top: 7rem; }
.fp-sidebar-card h2 { margin-top: 0; }
.fp-sidebar-card ul { margin-bottom: 0; padding-left: 1.15rem; }
.fp-sidebar-card li + li { margin-top: .55rem; }
.fp-sidebar-card a { text-underline-offset: .14em; }
@media (max-width: 900px) {
  .fp-blog-layout { flex-wrap: wrap !important; }
  .fp-blog-layout > .wp-block-column { flex-basis: 100% !important; }
  .fp-blog-sidebar { position: static; margin-top: 1rem; }
}

/* Mobile navigation improvements */
@media (max-width: 782px) {
  .wp-site-blocks {
    padding-top: 72px;
  }

  .wp-site-blocks > header.wp-block-template-part {
    position: fixed !important;
    top: 0 !important;
    left: 0;
    right: 0;
    width: 100%;
    z-index: 9999;
  }

  .admin-bar .wp-site-blocks > header.wp-block-template-part {
    top: 46px !important;
  }

  .fp-header {
    width: 100%;
  }

  .wp-block-navigation__responsive-container.is-menu-open {
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
    box-sizing: border-box;
    padding: max(1.25rem, env(safe-area-inset-top)) 1.5rem max(1.5rem, env(safe-area-inset-bottom));
    z-index: 10000;
  }

  .admin-bar .wp-block-navigation__responsive-container.is-menu-open {
    top: 46px !important;
    height: calc(100dvh - 46px) !important;
  }

  .wp-block-navigation__responsive-container-content {
    min-height: 100%;
    justify-content: flex-start !important;
    padding-top: 3.75rem !important;
  }

  .wp-block-navigation__responsive-container-close {
    position: fixed !important;
    top: max(1rem, env(safe-area-inset-top));
    right: 1.25rem;
    z-index: 10001;
  }

  .admin-bar .wp-block-navigation__responsive-container-close {
    top: calc(46px + max(1rem, env(safe-area-inset-top)));
  }

  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
    width: 100%;
    gap: .25rem !important;
    align-items: stretch !important;
  }

  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
    width: 100%;
  }

  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
    display: block;
    width: 100%;
    box-sizing: border-box;
    padding: .9rem .25rem;
    font-size: 1.2rem;
    border-bottom: 1px solid #D9CCB7;
  }
}
