/* FPEIM demo design system. Applies consistently to all templates and plugin archives.
   The original Annapolis Royal navigation CSS/JS and slideshow internals are unchanged. */
body.fpeim-demo {
  --fpeim-accent: #0c447a;
  --fpeim-accent-dark: #072d55;
  --fpeim-accent-soft: #eef5fb;
  --fpeim-highlight: #dcad61;
  --fpeim-ink: #243142;
  --fpeim-muted: #52616e;
  --fpeim-border: #dbe3ec;
  --fpeim-surface: #ffffff;
  --fpeim-max-width: 1220px;
  --site-accent: var(--fpeim-accent);
  --site-accent-dark: var(--fpeim-accent-dark);
  --site-text: var(--fpeim-ink);
  --news-accent: var(--fpeim-accent);
  --news-accent-dark: var(--fpeim-accent-dark);
  --news-radius: 12px;
  color: var(--fpeim-ink);
  font-family: Arial, Helvetica, sans-serif;
  line-height: 1.55;
}
body.fpeim-demo.fpeim-layout-compact {
  --fpeim-accent: #244e36; --fpeim-accent-dark: #173624;
  --fpeim-accent-soft: #eef5ee; --fpeim-highlight: #e2b35c;
}
body.fpeim-demo.fpeim-layout-expanded {
  --fpeim-accent: #5d2c7a; --fpeim-accent-dark: #39164f;
  --fpeim-accent-soft: #f7f0f9; --fpeim-highlight: #e1a85f;
}
body.fpeim-demo :is(button,a,input,select,textarea):focus-visible {
  outline: 3px solid #d58a20; outline-offset: 3px;
}
body.fpeim-demo h1, body.fpeim-demo h2, body.fpeim-demo h3 {font-family: Arial, Helvetica, sans-serif; letter-spacing: -.018em;}
body.fpeim-demo h1 {color: var(--fpeim-ink); text-transform: none;}
body.fpeim-demo .fpeim-wrap {width: min(var(--fpeim-max-width), calc(100% - 44px)); margin-inline: auto; box-sizing: border-box;}
body.fpeim-demo .fpeim-home {width: 100%; min-width: 0;}
body.fpeim-demo .fpeim-home :is(section,div) {box-sizing: border-box;}
body.fpeim-demo .fpeim-home-section, body.fpeim-demo .fpeim-features-band, body.fpeim-demo .fpeim-intro-section {display: block; width: 100%;}
body.fpeim-demo .fpeim-admin-hint {background:#fff7dc; border-left:4px solid #c17f14; padding:12px; margin:12px 0; font-size:.9rem;}

/* Branded header, preserving the structure and behaviour of original mobile navigation. */
body.fpeim-demo .utility-top-bar {background:var(--fpeim-accent-dark);}
body.fpeim-demo .top-bar {background:#fff; border-bottom: 4px solid var(--fpeim-accent);}
body.fpeim-demo .top-bar-inner, body.fpeim-demo .utility-top-bar-inner {max-width: 1350px;}
@media (min-width:1251px) {
  body.fpeim-demo .main-nav > li > a {font-family: Arial, Helvetica, sans-serif; font-weight:600; text-transform:none; font-size:.91rem;}
  body.fpeim-demo .main-nav > li:hover > a,
  body.fpeim-demo .main-nav > li.current-menu-item > a,
  body.fpeim-demo .main-nav > li.current-menu-ancestor > a {color: var(--fpeim-accent);}
}
body.fpeim-demo .fpeim-search-trigger {
  display:inline-flex; align-items:center; justify-content:center;
  width:42px; height:42px; flex:0 0 42px;
  border:1px solid var(--fpeim-border); border-radius:9px;
  background:var(--fpeim-accent); color:white; cursor:pointer;
}
body.fpeim-demo .fpeim-search-trigger:hover {background:var(--fpeim-accent-dark);}
body.fpeim-demo .frontpage-slideshow .overlaytext {color:white !important;}
body.fpeim-demo .frontpage-slideshow .overlaytext * {color:inherit !important;}
body.fpeim-demo .header-searchbar .header-search-submit,
body.fpeim-demo .frontpage-slideshow button[type="submit"] {background:var(--fpeim-accent); color:white;}
body.fpeim-demo .frontpage-slideshow .header-searchbar {max-width:650px;}
body.fpeim-demo.fpeim-layout-compact .frontpage-slideshow.has-slideshow-header .homepage-header-media {aspect-ratio: 3.35 / 1;}
body.fpeim-demo.fpeim-layout-service .frontpage-slideshow.has-slideshow-header .homepage-header-media {aspect-ratio: 2.85 / 1;}
body.fpeim-demo.fpeim-layout-expanded .frontpage-slideshow.has-slideshow-header .homepage-header-media {aspect-ratio: 2.6 / 1;}
body.fpeim-demo #header_image {background:var(--fpeim-accent)!important;}
body.fpeim-demo .village-alerts-bar {background: #fff3d7; color:#3d3220; border-bottom:1px solid #f0daac;}
body.fpeim-demo .village-alerts-bar .village-alerts-right {max-width: var(--fpeim-max-width); margin-inline:auto; width:100%;}
body.fpeim-demo .village-alerts-bar a {color:var(--fpeim-accent-dark);}

/* Search icon opens the same accessible modal on every page. */
body.fpeim-demo.fpeim-search-is-open {overflow:hidden;}
body.fpeim-demo #search-modal.search-modal {position:fixed; inset:0; z-index:999999; overflow-y:auto; padding: min(17vh, 120px) 18px 35px; align-items:flex-start; justify-content:center; background:rgba(13,24,40,.76);}
body.fpeim-demo #search-modal.search-modal.active {display:flex;}
body.fpeim-demo #search-modal .search-modal-content {width:min(100%,540px); max-width:540px; box-sizing:border-box; padding:36px 30px 30px; border-radius:16px; box-shadow:0 22px 70px rgba(0,0,0,.25);}
body.fpeim-demo #search-modal h2 {font-size:1.55rem; color:var(--fpeim-accent-dark); text-transform:none; margin:0 0 20px;}
body.fpeim-demo #search-modal .search-form {width:100%;}
body.fpeim-demo #search-modal .search-inner {display:flex; align-items:stretch; width:100%; gap:0; border:1px solid var(--fpeim-border); border-radius:8px; overflow:hidden;}
body.fpeim-demo #search-modal .search-inner label {flex:1 1 auto; min-width:0;}
body.fpeim-demo #search-modal input[type=search] {width:100%; min-height:52px; padding:0 15px; background:#fff; color:var(--fpeim-ink);}
body.fpeim-demo #search-modal .search-submit {flex:0 0 56px; min-height:52px; background:var(--fpeim-accent); color:#fff; cursor:pointer; display:flex; align-items:center; justify-content:center;}
body.fpeim-demo #search-modal .search-modal-close {top:8px; right:12px; font-size:1.8rem; width:40px; height:40px; color:var(--fpeim-ink);}

/* Homepage section foundation and block editor content. */
body.fpeim-demo .fpeim-intro-section {background:white; padding:34px 0 24px;}
body.fpeim-demo .fpeim-intro-wrap {text-align:left;}
body.fpeim-demo .fpeim-home-heading {display:block; color:var(--fpeim-accent-dark); font-size:clamp(1.7rem,3vw,2.45rem); margin:0 0 18px;}
body.fpeim-demo .fpeim-block-content {max-width:100%; margin-inline:auto; text-align:inherit;}
body.fpeim-demo .fpeim-block-content:empty {display:none;}
body.fpeim-demo .fpeim-block-content > :last-child {margin-bottom:0;}
body.fpeim-demo .fpeim-block-content :is(.wp-block-group,.wp-block-columns,.wp-block-cover) {max-width:100%;}
body.fpeim-demo .fpeim-home-columns {display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(18px,3.2vw,44px); padding-block:32px 48px; align-items:start;}
body.fpeim-demo .fpeim-home-section {min-width:0; padding:0;}
body.fpeim-demo .fpeim-section-title {display:block; color:var(--fpeim-accent-dark); font-size:clamp(1.3rem,2vw,1.65rem); text-transform:uppercase; font-weight:750; margin:0 0 20px; border-bottom:2px solid var(--fpeim-border); padding:0 0 12px;}
body.fpeim-demo .fpeim-home-services {background:#f6f9fc; border-top:1px solid #e9eff3;}
body.fpeim-demo.fpeim-layout-compact .fpeim-home-columns {grid-template-columns: 1.25fr 1fr;}
body.fpeim-demo.fpeim-layout-expanded .fpeim-intro-section {padding:46px 0;}
body.fpeim-demo.fpeim-layout-expanded .fpeim-expanded-events, body.fpeim-demo.fpeim-layout-expanded .fpeim-expanded-news {padding-block:42px 52px;}
body.fpeim-demo.fpeim-layout-expanded .fpeim-expanded-events {background:#fff;}
body.fpeim-demo.fpeim-layout-expanded .fpeim-expanded-news {padding-bottom:60px;}
body.fpeim-demo.fpeim-layout-expanded .fpeim-intro-wrap {text-align:center;}


body.fpeim-demo .fpeim-council-band {display:block; background:var(--fpeim-accent-dark); color:white; padding:26px 0;}
body.fpeim-demo .fpeim-council-band-inner {display:flex; align-items:center; justify-content:space-between; gap:24px;}
body.fpeim-demo .fpeim-council-band h2 {font-size:1.35rem; color:white; margin:0 0 8px; text-transform:none;}
body.fpeim-demo .fpeim-council-band p {color:#f3f7fd; margin:0;}
body.fpeim-demo .fpeim-council-eyebrow {text-transform:uppercase; letter-spacing:.08em; font-size:.8rem; font-weight:700; margin-bottom:5px!important;}
body.fpeim-demo .fpeim-council-actions {display:flex; flex-direction:column; min-width:210px; gap:9px;}
body.fpeim-demo .fpeim-council-actions a {border:1px solid rgba(255,255,255,.5); color:white; text-decoration:none; border-radius:7px; padding:9px 16px; text-align:center; font-weight:700;}
body.fpeim-demo .fpeim-council-actions a:hover {background:#fff; color:var(--fpeim-accent-dark);}
@media(max-width:750px){body.fpeim-demo .fpeim-council-band-inner {flex-direction:column; align-items:stretch;}body.fpeim-demo .fpeim-council-actions{min-width:0;}}

/* Interior pages and plugin-owned archives share the selected palette and centring. */
body.fpeim-demo .fpeim-interior {display:block; width:100%; min-height:45vh; background:#fff;}
body.fpeim-demo .fpeim-interior-body {padding-block:clamp(28px,4vw,55px) 70px;}
body.fpeim-demo.fpeim-layout-compact .fpeim-interior {background:#fff;}
body.fpeim-demo.fpeim-layout-compact .fpeim-interior-body > .entry-title {border-bottom-width:2px;}
body.fpeim-demo.fpeim-layout-service .fpeim-interior {background:#f5f8fb; padding:35px 0 55px;}
body.fpeim-demo.fpeim-layout-service .fpeim-interior-body {background:#fff; border:1px solid var(--fpeim-border); border-left:6px solid var(--fpeim-accent); border-radius:12px; padding:35px clamp(18px,3vw,46px) 60px;}
body.fpeim-demo.fpeim-layout-expanded .fpeim-interior {background:linear-gradient(180deg,var(--fpeim-accent-soft),#fff 290px); padding:42px 0 56px;}
body.fpeim-demo.fpeim-layout-expanded .fpeim-interior-body {background:#fff; border:1px solid #e9dfee; border-top:6px solid var(--fpeim-accent); border-radius:14px; padding:35px clamp(20px,3vw,48px) 65px; box-shadow:0 13px 34px rgba(55,24,79,.07);}

body.fpeim-demo .fpeim-interior-body > .entry-title {display:block; max-width:100%; font-size:clamp(1.9rem,3vw,2.5rem); color:var(--fpeim-accent-dark); border-bottom:3px solid var(--fpeim-accent); padding-bottom:14px; margin:12px 0 25px;}
body.fpeim-demo .fpeim-page-blocks {width:100%; margin-inline:auto; overflow-wrap:anywhere;}
body.fpeim-demo .fpeim-page-blocks .alignwide {max-width:var(--fpeim-max-width); margin-inline:auto;}
body.fpeim-demo .fpeim-page-blocks > :last-child {margin-bottom:0;}
body.fpeim-demo main > section.content,
body.fpeim-demo main .content:not(.fpeim-block-content),
body.fpeim-demo .news-archive,
body.fpeim-demo .search-results-page #search-results {
    width:min(var(--fpeim-max-width),calc(100% - 44px)); max-width:var(--fpeim-max-width);
    margin-left:auto; margin-right:auto; box-sizing:border-box;
}
body.fpeim-demo main > section.content {padding:clamp(28px,4vw,50px) 0 65px;}
body.fpeim-demo .entry-title, body.fpeim-demo .news-archive__header h1 {color:var(--fpeim-accent-dark);}
body.fpeim-demo .search-results-page {--search-accent:var(--fpeim-accent); --search-accent-dark:var(--fpeim-accent-dark);}
body.fpeim-demo .wp-block-button__link {background:var(--fpeim-accent); color:#fff; border-radius:8px;}
body.fpeim-demo .wp-block-table thead th {background:var(--fpeim-accent-dark)!important; border-color:var(--fpeim-accent-dark)!important;}
body.fpeim-demo footer {background:var(--fpeim-accent);}
body.fpeim-demo footer section.copyright {background:var(--fpeim-accent-dark);}
body.fpeim-demo footer .content, body.fpeim-demo footer .section {max-width:var(--fpeim-max-width); margin-left:auto; margin-right:auto;}

/* Mobile: do not replace Annapolis Royal's menu or modify its selectors/JS. */
@media (max-width:1250px) {
    body.fpeim-demo .top-bar-inner {gap:8px;}
    body.fpeim-demo .fpeim-search-trigger {margin-right:48px; flex-basis:40px; width:40px; height:40px;}
    body.fpeim-demo .fpeim-home-columns {grid-template-columns:minmax(0,1fr); gap:28px;}
    body.fpeim-demo.fpeim-layout-compact .fpeim-home-columns {grid-template-columns:minmax(0,1fr);}
}
@media (max-width:720px) {
  body.fpeim-demo .fpeim-wrap {width:calc(100% - 28px);}
  body.fpeim-demo main > section.content, body.fpeim-demo main .content:not(.fpeim-block-content), body.fpeim-demo .news-archive, body.fpeim-demo .search-results-page #search-results {width:calc(100% - 28px);}
  body.fpeim-demo .fpeim-intro-section {padding:25px 0;}
  body.fpeim-demo .fpeim-home-columns {padding-block:24px 36px;}
  body.fpeim-demo .fpeim-search-trigger {margin-right:52px; width:38px; height:38px; flex-basis:38px;}
  body.fpeim-demo .fpeim-interior-body {padding-block:26px 40px;}
  body.fpeim-demo .fpeim-section-title {font-size:1.25rem;}
  body.fpeim-demo #search-modal .search-modal-content {padding:32px 20px 22px;}
}
@media (prefers-reduced-motion: reduce) {
  body.fpeim-demo *, body.fpeim-demo *::before, body.fpeim-demo *::after {scroll-behavior:auto;}
}
