/* Theme-only styling of output from existing plugins. No duplicate queries/cards. */
/* Feature Boxes: actual icons, order, titles and URLs all come from plugin. */
body.fpeim-demo .fpeim-features-band {padding:22px 0 26px; background:var(--fpeim-accent-soft); border-bottom:1px solid var(--fpeim-border);}
body.fpeim-demo .feature-boxes {
  --fb-accent:var(--fpeim-accent); --fb-focus:var(--fpeim-accent-dark);
  --fb-background:#fff; --fb-text:var(--fpeim-accent-dark);
  --fb-border:var(--fpeim-border); --fb-radius:12px; --fb-gap:14px; --fb-min-width:140px;
  display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,var(--fb-min-width)),1fr));
  grid-auto-flow:row; flex-wrap:initial; align-items:stretch; justify-content:center;
  gap:var(--fb-gap); margin:0 auto; max-width:100%; width:100%; box-sizing:border-box;
}
body.fpeim-demo .feature-boxes > .feature-box,
body.fpeim-demo .feature-boxes > a.feature-box {
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  flex:none; width:100%; max-width:none; min-width:0; min-height:124px; height:auto;
  padding:17px 12px; background:#fff; border:1px solid var(--fpeim-border);
  border-radius:12px; color:var(--fpeim-accent-dark);
  text-decoration:none; box-shadow:0 3px 13px rgba(17,44,72,.06);
}
body.fpeim-demo .feature-boxes .fb-icon {display:flex; align-items:center; justify-content:center; height:45px; width:52px; margin-bottom:9px; color:var(--fpeim-accent);}
body.fpeim-demo .feature-boxes .fb-icon svg {max-width:40px; max-height:40px; fill:currentColor; color:var(--fpeim-accent);}
body.fpeim-demo .feature-boxes .fb-icon img {max-height:40px; max-width:45px; object-fit:contain;}
body.fpeim-demo .feature-boxes .fb-title {font-size:.91rem; font-weight:700; line-height:1.3; color:inherit; text-align:center;}
body.fpeim-demo .feature-boxes a.feature-box:hover {border-color:var(--fpeim-accent); transform:translateY(-2px); box-shadow:0 9px 20px rgba(21,33,50,.12);}
body.fpeim-demo.fpeim-layout-compact .feature-boxes {--fb-min-width:165px;}
body.fpeim-demo.fpeim-layout-compact .feature-boxes > .feature-box {min-height:110px;}
body.fpeim-demo.fpeim-layout-service .feature-boxes {--fb-min-width:155px;}
body.fpeim-demo.fpeim-layout-expanded .fpeim-features-band {background:var(--fpeim-accent-dark); padding-block:25px 35px;}
body.fpeim-demo.fpeim-layout-expanded .feature-boxes {--fb-min-width:165px;}
body.fpeim-demo.fpeim-layout-expanded .feature-boxes > .feature-box {border:1px solid rgba(255,255,255,.25); background:#fff;}

/* News plugin: preserve news-card, thumbnail, badges, excerpt and archive links. */
body.fpeim-demo .news-grid {max-width:100%; margin-inline:auto; gap:16px;}
body.fpeim-demo .news-grid .news-card {border:1px solid var(--fpeim-border); background:white; border-radius:12px; box-shadow:0 4px 13px rgba(13,34,56,.06); overflow:hidden;}
body.fpeim-demo .news-grid .news-card__content {min-width:0;}
body.fpeim-demo .news-grid .news-card__title {color:var(--fpeim-accent-dark); font-family:Arial,Helvetica,sans-serif; font-size:1rem; font-weight:750; line-height:1.35; text-transform:none;}
body.fpeim-demo .news-grid .news-card__more, body.fpeim-demo .news-all-link .news-button {color:var(--fpeim-accent);}
body.fpeim-demo .news-grid .news-card__date {color:var(--fpeim-muted);}
body.fpeim-demo .news-filter {border-left-color:var(--fpeim-accent);}
body.fpeim-demo .news-archive .news-card__title {color:var(--fpeim-accent-dark);}
body.fpeim-demo .news-archive .news-grid {width:100%; margin:0 auto;}
/* Compact + Service reference concepts use compact horizontal news rows. */
body.fpeim-demo :is(.fpeim-compact-columns,.fpeim-service-columns) .news-grid--shortcode {display:flex; flex-direction:column; gap:10px;}
body.fpeim-demo :is(.fpeim-compact-columns,.fpeim-service-columns) .news-card {display:grid; grid-template-columns:110px minmax(0,1fr); min-height:112px;}
body.fpeim-demo :is(.fpeim-compact-columns,.fpeim-service-columns) .news-card__image {width:110px; min-width:0; height:100%;}
body.fpeim-demo :is(.fpeim-compact-columns,.fpeim-service-columns) .news-card__thumbnail {width:100%; height:100%; min-height:110px; object-fit:cover;}
body.fpeim-demo :is(.fpeim-compact-columns,.fpeim-service-columns) .news-card__content {padding:12px 15px;}
body.fpeim-demo :is(.fpeim-compact-columns,.fpeim-service-columns) .news-card__title {margin:3px 0 5px; font-size:.95rem;}
body.fpeim-demo .fpeim-expanded-news .news-grid--shortcode {display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px;}
body.fpeim-demo .fpeim-expanded-news .news-card__thumbnail {width:100%; height:175px; object-fit:cover;}

/* Site Notices plugin: still plugin controlled; no fabricated "All Notices" link. */
body.fpeim-demo .fpeim-site-notices {width:100%; padding:10px 22px; background:#fff3da;}
body.fpeim-demo .fpeim-site-notices .sn-notice-rotation {color:#40321b; font-size:.94rem; font-weight:650;}
body.fpeim-demo .fpeim-site-notices .sn-rotate-item a {color:var(--fpeim-accent-dark); text-decoration:underline; text-underline-offset:2px;}
body.fpeim-demo .fpeim-site-notices .sn-rotation-control {color:var(--fpeim-accent-dark);}

/* Calendar plugin's actual carousel. Theme changes colour but retains JS keyboard controls. */
body.fpeim-demo .mcc-upcoming-events-wrapper {--mcc-accent:var(--fpeim-accent); --mcc-primary:var(--fpeim-accent); width:100%; max-width:100%; margin:0 auto;}
body.fpeim-demo .mcc-upcoming-events-wrapper a {color:var(--fpeim-accent);}
body.fpeim-demo .mcc-upcoming-events-wrapper .mcc-view-calendar {margin-top:12px;}
@media(max-width:780px) {
  body.fpeim-demo .feature-boxes {--fb-min-width:130px; --fb-gap:10px;}
  body.fpeim-demo .feature-boxes > .feature-box {padding:12px 9px; min-height:100px;}
  body.fpeim-demo .fpeim-expanded-news .news-grid--shortcode {grid-template-columns:1fr;}
  body.fpeim-demo :is(.fpeim-compact-columns,.fpeim-service-columns) .news-card {grid-template-columns:96px minmax(0,1fr);}
  body.fpeim-demo :is(.fpeim-compact-columns,.fpeim-service-columns) .news-card__image {width:96px;}
}
