.frontier-products-menu { position: relative; }
.frontier-products-menu summary { cursor: pointer; padding: 12px 16px; font-weight: 700; list-style: none; border-radius: 8px; }
.frontier-products-menu summary::-webkit-details-marker { display: none; }
.frontier-products-menu[open] summary, .frontier-products-menu.is-active summary { background: #285ca7; color: white; }
.frontier-products-dropdown { position: absolute; top: 100%; left: 0; min-width: 230px; padding: 8px; background: white; box-shadow: 0 8px 24px #16314d26; border: 1px solid #d8e4ed; border-radius: 8px; z-index: 30; }
.frontier-nav .frontier-products-dropdown a { display: block; color: #193a60; white-space: normal; }
.frontier-catalogue-banner { position: relative; isolation: isolate; overflow: hidden; min-height: 350px; height: min(420px, 52svh); background: #1e3445; display: flex; align-items: center; }
.frontier-catalogue-banner-image { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: center bottom; transform-origin: center bottom; animation: frontier-banner-settle 4.5s ease-out both; }
.frontier-catalogue-banner::before { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgb(12 30 45 / 72%), rgb(12 30 45 / 25%) 55%, transparent); }
.frontier-site .frontier-catalogue-banner-content { width: min(1280px, calc(100% - 40px)); margin-inline: auto; padding: 36px 0; color: white; animation: frontier-banner-enter 900ms ease-out both; }
.frontier-catalogue-breadcrumb { display: flex; gap: 14px; align-items: center; font-size: 13px; margin-bottom: 24px; }
.frontier-catalogue-breadcrumb a { color: white; text-underline-offset: 4px; }
.frontier-site .frontier-catalogue-banner h1 { color: white; font-size: 56px; line-height: 1.1; margin: 0 0 20px; letter-spacing: 0; }
.frontier-catalogue-banner p { max-width: 490px; font-size: 18px; line-height: 1.65; margin: 0; color: #f3f7fb; }
@keyframes frontier-banner-settle { from { transform: scale(1.04); } to { transform: scale(1); } }
@keyframes frontier-banner-enter { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: translateY(0); } }
@media (prefers-reduced-motion: reduce) { .frontier-catalogue-banner-image, .frontier-site .frontier-catalogue-banner-content { animation: none; } }
.frontier-site #products .frontier-product-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.frontier-site #products .frontier-product-card img { height: 165px; width: 100%; object-fit: contain; padding: 12px; box-sizing: border-box; }
.frontier-site #products .frontier-product-card-body { padding: 18px; }
.frontier-site #products .frontier-product-card h3 { font-size: 18px; line-height: 1.35; margin: 0 0 10px; }
.frontier-site #products .frontier-product-card h3 a { color: #214e87; text-decoration: none; }
.frontier-site #products .frontier-product-card h3 a:hover { text-decoration: underline; }
.frontier-site #products .frontier-product-card p { font-size: 14px; line-height: 1.6; margin: 0; }
.frontier-catalogue-card { scroll-margin-top: 145px; }
.frontier-catalogue-card:target { outline: 2px solid #285ca7; outline-offset: 3px; }
.frontier-catalogue-category { scroll-margin-top: 145px; padding-block: 32px; }
.frontier-catalogue-category h2 { font-size: 30px; }
.frontier-catalogue-category .frontier-section-heading { margin-bottom: 24px; }
.frontier-catalogue-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.frontier-catalogue-card { border: 1px solid #d6e1e8; border-radius: 8px; overflow: hidden; background: white; display: flex; flex-direction: column; }
.frontier-catalogue-card > img, .frontier-product-no-image { width: 100%; height: 180px; object-fit: contain; background: #fff; padding: 12px; box-sizing: border-box; }
.frontier-product-no-image { display: grid; place-content: center; text-align: center; color: #647582; background: #edf3f7; font-size: 14px; }
.frontier-catalogue-card-body { padding: 18px; display: flex; flex-direction: column; flex: 1; }
.frontier-catalogue-card h3 { font-size: 17px; line-height: 1.4; margin: 0 0 10px; color: #173c6b; }
.frontier-catalogue-card p { font-size: 14px; line-height: 1.6; margin: 0 0 18px; color: #52616c; }
.frontier-catalogue-card .frontier-button { margin-top: auto; padding: 10px 14px; min-height: 42px; font-size: 14px; }
.frontier-enquiry-dialog { width: min(640px, calc(100% - 24px)); max-height: 90dvh; box-sizing: border-box; padding: 32px 20px 20px; border: 1px solid #cbdde9; border-radius: 8px; color: #173c6b; }
.frontier-enquiry-dialog::backdrop { background: #10283fb3; }
.frontier-enquiry-dialog .frontier-connect-form { border: 0; padding: 12px; box-shadow: none; }
.frontier-dialog-close { position: absolute; top: 6px; right: 10px; border: 0; background: none; font-size: 28px; width: 36px; height: 36px; cursor: pointer; }
.frontier-enquiry-dialog input, .frontier-enquiry-dialog select, .frontier-enquiry-dialog textarea { box-sizing: border-box; max-width: 100%; }
@media (max-width: 1050px) { .frontier-catalogue-grid { grid-template-columns: repeat(3,minmax(0,1fr)); } }
@media (max-width: 760px) {
  .frontier-catalogue-banner { min-height: 320px; height: 340px; }
  .frontier-catalogue-banner-image { object-position: 65% center; }
  .frontier-catalogue-banner::before { background: rgb(12 30 45 / 62%); }
  .frontier-site .frontier-catalogue-banner h1 { font-size: 40px; }
  .frontier-catalogue-banner p { font-size: 16px; max-width: 370px; }
  .frontier-site #products .frontier-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .frontier-catalogue-card { scroll-margin-top: 180px; }
  .frontier-site .frontier-nav { overflow: visible; flex-wrap: wrap; }
  .frontier-products-menu summary { padding: 7px 10px; font-size: 0.72rem; }
  .frontier-catalogue-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
  .frontier-products-dropdown { position: fixed; top: auto; left: 16px; right: 16px; min-width: 0; }
  .frontier-catalogue-category { scroll-margin-top: 180px; }
}
@media (max-width: 480px) { .frontier-site #products .frontier-product-grid { grid-template-columns: 1fr; } }
@media (min-width: 761px) and (max-width: 1200px) {
  .frontier-site .frontier-nav { overflow: visible; flex-wrap: wrap; }
  .frontier-products-menu summary { padding: 8px 10px; font-size: 14px; }
}
@media (max-width: 480px) { .frontier-catalogue-grid { grid-template-columns: 1fr; } }

/* Scale visually so neighbouring cards keep their positions. */
@media (hover: hover) and (pointer: fine) {
  .frontier-site .frontier-catalogue-card[data-reveal] {
    position: relative;
    transform-origin: center;
    transition: transform 300ms ease, box-shadow 300ms ease, border-color 300ms ease, opacity 300ms ease;
  }
  .frontier-site .frontier-catalogue-card > img { transition: transform 300ms ease; }
  .frontier-site .frontier-catalogue-card:is(:hover, :focus-within),
  .frontier-site.is-motion-ready .frontier-catalogue-card[data-reveal].is-visible:is(:hover, :focus-within) {
    z-index: 3;
    transform: translateY(-5px) scale(1.07);
    border-color: #275ba9;
    box-shadow: 0 16px 36px rgba(23, 59, 112, 0.2);
  }
  .frontier-site .frontier-catalogue-card:is(:hover, :focus-within) > img { transform: scale(1.1); }
}
@media (prefers-reduced-motion: reduce) {
  .frontier-site .frontier-catalogue-card[data-reveal],
  .frontier-site .frontier-catalogue-card > img { transition: none; }
  .frontier-site .frontier-catalogue-card:is(:hover, :focus-within),
  .frontier-site.is-motion-ready .frontier-catalogue-card[data-reveal].is-visible:is(:hover, :focus-within),
  .frontier-site .frontier-catalogue-card:is(:hover, :focus-within) > img { transform: none; }
}
.frontier-product-row-title { margin: 32px 0 18px; font-size: 23px; color: #173b70; }
@media (min-width: 768px) { .frontier-catalogue-grid.frontier-authority-row { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
