/* MINGAN identity. Load after public.css and seo.css.
   Logo artwork retains its original colours; only interface colours change. */
:root {
  --brand-primary: #403d92;
  --brand-primary-hover: #302b72;
  --brand-navy: #25233f;
  --brand-ink: #25283b;
  --brand-muted: #626577;
  --brand-orange: #f28a18;
  --brand-gold: #f5b74f;
  --brand-line: #dedee7;
  --brand-paper: #f7f6f3;
  --brand-tint: #f1f0f7;
  --background: #fff;
  --foreground: var(--brand-ink);
  --primary: var(--brand-primary);
  --primary-foreground: #fff;
  --muted: var(--brand-tint);
  --muted-foreground: var(--brand-muted);
  --border: var(--brand-line);
  --input: #c6c5d3;
  --ring: var(--brand-primary);
}

body { color: var(--brand-ink); background: #fff; }
p { color: var(--brand-muted); }
::selection { color: var(--brand-navy); background: #fbe0b5; }
a:focus-visible, button:focus-visible, input:focus-visible,
select:focus-visible, textarea:focus-visible, summary:focus-visible {
  outline: 3px solid var(--brand-orange);
  outline-offset: 4px;
}
.blue, .text-link, .text-button, .card-link,
.facts strong, .footer-top strong, .brand-row,
.brand-definitions strong, .market-strip strong span {
  color: var(--brand-primary);
}
.lead { color: var(--brand-ink); }
.note, .result-count, .facts span, .file-label, .seo-byline {
  color: var(--brand-muted);
}

/* Shared navigation and language controls. */
.p-utility, .utility {
  background: var(--brand-primary-hover);
  color: #e6e3f6;
}
.p-utility a[aria-current], .utility a[aria-current] {
  color: #fff;
  text-decoration-color: var(--brand-gold);
  border-bottom-color: var(--brand-gold);
}
.p-header, .site-header, .header {
  background: #fff;
  border-bottom-color: var(--brand-line);
  box-shadow: 0 3px 16px #25233f08;
}
.p-brand {
  width: 272px;
  flex-direction: row;
  align-items: center;
  justify-content: flex-start;
  gap: 14px;
}
.p-brand .p-brand-mark {
  display: block;
  flex: 0 0 92px;
  width: 92px;
  height: 74px;
  max-width: none;
  aspect-ratio: auto;
  overflow: visible;
}
.p-brand .p-brand-mark img {
  position: static;
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: none;
  object-fit: contain;
  object-position: center;
}
.p-brand .p-brand-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  flex: 1 1 0;
  gap: 6px;
  min-width: 0;
  max-width: 166px;
  text-align: left;
}
.p-brand .p-brand-title { font-size: 17px; letter-spacing: .03em; line-height: 1.3; }
.p-brand .p-brand-tagline {
  width: 100%;
  max-width: 100%;
  font-size: 9.5px;
  letter-spacing: .015em;
  line-height: 1.45;
  white-space: normal;
  overflow-wrap: normal;
  word-break: normal;
  text-wrap: balance;
}
.p-brand--en .p-brand-tagline { font-size: 12px; font-weight: 500; letter-spacing: .015em; line-height: 1.45; }
.p-brand .p-brand-title { color: var(--brand-primary); }
.p-brand .p-brand-tagline, .p-brand span { color: var(--brand-muted); }
.p-nav, .nav-item, .nav-trigger { color: var(--brand-ink); }
.p-nav > a:hover, .p-nav-group > a:hover,
.nav-item:hover, .nav-item[aria-current], .header nav a:hover {
  color: var(--brand-primary);
}
.p-dropdown {
  background: #fff;
  border-color: var(--brand-line);
  box-shadow: 0 12px 28px #25233f18;
}
.p-dropdown a:hover, .p-dropdown a:focus-visible {
  background: var(--brand-tint);
  color: var(--brand-primary);
}
.p-mobile { color: var(--brand-primary); border-color: #cfccdf; }
.p-contact, .nav-cta, .button.primary,
.mega-groups button[data-active] {
  color: #fff;
  background: var(--brand-primary);
}
.p-contact:hover, .nav-cta:hover, .button.primary:hover {
  color: #fff;
  background: var(--brand-primary-hover);
}
.button, .p-contact, .nav-cta, .p-categories a {
  transition: background-color .18s ease, color .18s ease, border-color .18s ease;
}
.button { color: var(--brand-primary); background: #fff; }
.button:hover { color: var(--brand-primary-hover); background: #eeeaf8; }
.mega-groups[data-slot=tabs-list], .mega-summary { background: var(--brand-tint); }
.mega-links .group-overview, .mega-summary a, .mega-bottom a { color: var(--brand-primary); }
.mega-bottom, .mega-links .group-overview { border-color: var(--brand-line); }

/* Photo surfaces retain the original photography beneath a restrained navy veil. */
.hero, .p-photo-head, .application-photo { background-color: var(--brand-navy); }
.hero-shade, .regional-hero .hero-shade {
  background: linear-gradient(90deg, #211f44ed 0%, #211f44b3 43%, #211f4420 100%),
    linear-gradient(0deg, #17172f9c 0%, transparent 42%);
}
.hero h1, .hero-secondary, .hero-bottom { color: #fff; }
.hero h1 span { color: var(--brand-gold); }
.hero-intro, .photo-note { color: #eeedf5; }
.hero .eyebrow, .p-photo-head .eyebrow { color: #f7c978; }
.hero .button {
  background: var(--brand-gold);
  color: #2a2242;
}
.hero .button:hover { background: #ffc975; color: #231c38; }
.hero-bottom { border-top-color: #ffffff38; }
.p-photo-head:after {
  background: linear-gradient(90deg, #211f44f5 0%, #211f44df 37%, #211f4487 65%, #211f441a 100%);
}
.p-photo-head .head-desc { color: #f1eff7; }
.p-photo-head .crumb, .p-photo-head .crumb a { color: #e4e1ef; }
.application-photo:after { background: linear-gradient(transparent 30%, #211f44d9); }
.application-photo .eyebrow { color: #f7c978; }
.contact, .compact-cta { color: #fff; background: var(--brand-primary-hover); }
.p-visual-cta {
  background-image: linear-gradient(90deg, #302b72f5, #25233fdd), var(--cta-image);
}
.compact-cta .eyebrow { color: #f7c978; }
.contact p, .contact-cards span { color: #e2deef; }
.contact-cards a:last-child { color: #f4efff; }

/* Pale sections alternate warm paper and a quiet violet tint. */
.page-head, .board-page-head {
  background: var(--brand-tint);
  border-bottom-color: var(--brand-line);
}
.p-photo-head { background-color: var(--brand-navy); }
.head-desc, .crumb, .crumb a { color: var(--brand-muted); }
.soft, .products, .manufacture-band, .market-strip,
.p-partner, .p-source-feature, .official-links, .technical-note,
.filters, .enquiry form, .mega-summary { background: var(--brand-paper); }
.p-source-feature > div:first-child { background: #f0efed; }
.p-business { background: #fff; border-color: var(--brand-line); }
.p-business > a, .p-business > a + a { border-color: var(--brand-line); }
.p-business > a.p-business-visual { background: #fff; }
.p-business > a.p-business-visual:hover { background: #fbfaf7; }
.p-business > a:first-child .p-business-image { background: var(--brand-paper); }
.p-business p, .board-category-intro p { color: var(--brand-muted); }
.p-categories a {
  color: var(--brand-primary);
  background: #fff;
  border-color: #d3d0e3;
}
.p-categories a:hover, .p-categories a[aria-current] {
  color: #fff;
  background: var(--brand-primary);
  border-color: var(--brand-primary);
}
.p-office {
  background: var(--brand-paper);
  border-top-color: var(--brand-primary);
}
.p-office a { color: var(--brand-primary); }
.p-reference-list p { background: #fff; border-color: var(--brand-line); }
.market-strip, .market-strip > a { border-color: var(--brand-line); }
.market-strip .eyebrow { color: var(--brand-muted); }

/* Cards, technical information and downloadable documents. */
.range-grid, .support-grid, .range-card, .catalog-card,
.product-card > a, .facts, .application-list article, .steps article,
.check-list article, .contact-block, .brand-definitions p,
.empty, .p-product-visual, .p-card-image {
  border-color: var(--brand-line);
}
.range-number, .product-index { color: #b2aecb; }
.range-card:hover, .catalog-card:hover { background: #faf9fd; }
.range-card.p-illustrated, .catalog-card.p-illustrated { background: #fff; }
.p-illustrated:hover { box-shadow: 0 12px 30px #302b7212; }
.p-card-copy h3, .project-card h3 { color: var(--brand-ink); }
.p-illustrated:hover .card-link, .project-card:hover h3 { color: var(--brand-primary-hover); }
.p-diagram-card .p-card-image, .p-product-visual,
.board-drawing figcaption { background: var(--brand-paper); }
.p-product-visual strong { color: var(--brand-ink); }
.p-product-visual figcaption span, .check-list span,
.application-list article > span, .board-facts span {
  color: var(--brand-muted);
}
.product-card { border-top-color: var(--brand-primary); }
.product-types span { color: var(--brand-muted); background: var(--brand-tint); }
.steps article > span { color: var(--brand-primary); }
.technical-aside { background: var(--brand-tint); border-top-color: var(--brand-primary); }
.status-label { color: var(--brand-primary); border-color: #ccc7df; background: #f8f7fc; }
.download-card { border-color: var(--brand-line); background: var(--brand-paper); }
.download-card p { color: var(--brand-muted); }
.board-facts { background: var(--brand-tint); border-left-color: var(--brand-primary); }
.board-legend > div, .board-table th, .board-table td { border-color: var(--brand-line); }
.board-legend dt { color: var(--brand-primary); }
.board-note { border-left-color: var(--brand-gold); }
.board-note p { color: var(--brand-muted); }
.board-table th { color: #2d285c; background: #eae8f3; }
.board-table tbody tr:nth-child(even) { background: #f8f7fa; }

/* Search/index pages, enquiries and status messages. */
.seo-related { background: var(--brand-paper); }
.seo-index li { border-color: var(--brand-line); }
.seo-related-links a, .seo-index a { color: var(--brand-primary); }
.seo-index p { color: var(--brand-muted); }
.enquiry-strip {
  background: var(--brand-tint);
  color: var(--brand-primary);
  border-top: 1px solid var(--brand-line);
}
.public-form label, .enquiry label { color: var(--brand-ink); }
.public-form input:not([type=checkbox]):not([type=hidden]), .public-form textarea,
.enquiry input, .enquiry select, .enquiry textarea, .filters input, .filters select {
  color: var(--brand-ink);
  background: #fff;
  border-color: #c6c5d3;
}
.public-form input[type=checkbox] { accent-color: var(--brand-primary); }
.public-form input:focus, .public-form textarea:focus {
  outline-color: var(--brand-primary);
  border-color: var(--brand-primary);
}
.public-form .errorlist { background: #fff2eb; color: #963e23; }
.thanks { background: #f3f1f9; border-color: #cbc6e3; }
.thanks a { color: var(--brand-primary); text-decoration: underline; text-underline-offset: 4px; }
.preview-banner { color: #65421c; background: #fff0d2; }
.enquiry-preview { border-color: var(--brand-line); }

/* Authentic artwork: never tint, recolour or filter brand images. */
.brand-logo {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
  object-fit: contain;
}
.p-original-brands {
  align-items: center;
  flex-wrap: wrap;
  gap: 22px 28px;
}
.p-original-brands img.brand-logo {
  width: 158px;
  max-width: 100%;
  height: 78px;
  padding: 0;
  background: transparent;
  object-position: left center;
}
.p-original-brands img.brand-logo--flamguard { width: 145px; }
.p-original-brands img.brand-logo--anben { width: 160px; }
.p-original-brands .brand-anben-wrap {
  display: inline-flex;
  align-items: center;
  max-width: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  font-size: 0;
  line-height: 0;
  font-weight: normal;
  letter-spacing: normal;
  white-space: normal;
}
.p-business .p-business-logo.brand-logo {
  width: 132px;
  height: 50px;
  padding: 0;
  object-fit: contain;
  object-position: left center;
}
.p-business .p-business-logo.brand-logo--mingan { width: 97px; height: 66px; }
/* Equal logo space keeps the two business headings on the same baseline. */
.p-business > a.p-business-visual > .eyebrow {
  display: flex;
  align-items: center;
  min-height: 74px;
  margin-bottom: 12px;
}
.p-business .p-business-logo.brand-logo { margin-bottom: 0; }
.p-business h2 { text-wrap: balance; }
footer { background: #faf9f6; border-top: 1px solid var(--brand-line); }
.footer-logo { color: var(--brand-primary); }
.p-footer-brand {
  display: inline-flex;
  align-items: center;
  max-width: 100%;
  margin-bottom: 18px;
}
.p-footer-brand .brand-logo--mingan { width: 140px; max-height: 106px; }
.footer-identity {
  display: flex;
  align-items: center;
  gap: 22px;
  max-width: 440px;
  margin-bottom: 18px;
}
.footer-identity .p-footer-brand {
  display: inline-flex;
  flex: 0 0 104px;
  width: 104px;
  margin: 0;
  padding: 0;
}
.footer-identity .brand-logo--mingan { width: 104px; height: auto; max-height: none; }
.footer-identity-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 7px;
  min-width: 0;
  max-width: 260px;
}
.footer-identity .footer-logo {
  display: block;
  font-size: 20px;
  line-height: 1.35;
  letter-spacing: .01em;
  text-wrap: balance;
}
.footer-identity .footer-company-en {
  margin: 0;
  max-width: 230px;
  font-size: 12px;
  line-height: 1.5;
  letter-spacing: .015em;
  text-wrap: balance;
  overflow-wrap: normal;
  word-break: normal;
}
.footer-grid a, .p-social a { color: var(--brand-ink); }
.footer-grid a:hover, .p-social a:hover, .p-legal a:hover { color: var(--brand-primary); }
.footer-bottom, .p-social, .p-legal { border-color: var(--brand-line); }
.footer-bottom, .p-legal { color: var(--brand-muted); }
.mobile-contact { background: var(--brand-primary-hover); }

@media (max-width: 1100px) {
  .p-brand { width: 236px; gap: 10px; }
  .p-brand .p-brand-mark { flex-basis: 78px; width: 78px; height: 65px; }
  .p-brand .p-brand-title { font-size: 15px; }
  .p-brand .p-brand-tagline { font-size: 9px; }
  .p-brand--en .p-brand-tagline { font-size: 11px; }
}
@media (max-width: 950px) {
  .p-nav { background: #fff; box-shadow: 0 12px 18px #25233f18; }
  .p-nav > a, .p-nav-group { border-color: var(--brand-line); }
  .p-dropdown { background: var(--brand-paper); }
}
@media (max-width: 760px) {
  .p-photo-head:after { background: linear-gradient(90deg, #211f44eb, #211f44bd); }
  .p-original-brands { gap: 20px 24px; }
  .p-original-brands img.brand-logo { width: 146px; height: 72px; }
  .p-original-brands img.brand-logo--flamguard { width: 135px; }
  .p-original-brands img.brand-logo--anben { width: 150px; }
  .p-business { grid-template-columns: minmax(0, 1fr); }
  .p-business > a + a { border-left: 0; border-top: 1px solid var(--brand-line); }
  .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .footer-grid > div:first-child { grid-column: 1 / -1; }
  .footer-identity { gap: 16px; }
  .footer-identity .p-footer-brand { flex-basis: 82px; width: 82px; }
  .footer-identity .brand-logo--mingan { width: 82px; }
  .footer-identity .footer-logo { font-size: 18px; }
  .footer-identity .footer-company-en { font-size: 11px; }
}
@media (max-width: 600px) {
  .p-brand { flex: 1 1 auto; width: auto; min-width: 0; max-width: 260px; gap: 9px; }
  .p-brand .p-brand-mark { flex-basis: 68px; width: 68px; height: 59px; }
  .p-brand .p-brand-copy { gap: 5px; }
  .p-brand .p-brand-title { font-size: 13px; letter-spacing: .015em; }
  .p-brand .p-brand-tagline { font-size: 8px; letter-spacing: 0; line-height: 1.4; }
  .p-brand--en .p-brand-tagline { font-size: 10px; letter-spacing: .01em; line-height: 1.45; }
}
@media (max-width: 420px) {
  .p-brand { gap: 8px; }
  .p-brand .p-brand-mark { flex-basis: 58px; width: 58px; height: 53px; }
  .p-brand .p-brand-title { font-size: 11.5px; }
  .p-brand--en .p-brand-tagline { font-size: 9px; }
  .p-business .p-business-logo.brand-logo { width: 110px; height: 45px; }
  .p-business .p-business-logo.brand-logo--mingan { width: 86px; height: 61px; }
  .p-business > a.p-business-visual > .eyebrow { min-height: 66px; }
}
@media (prefers-reduced-motion: reduce) {
  .button, .p-contact, .nav-cta, .p-categories a, .p-illustrated { transition: none; }
}

/* Keep the complete brand lockup legible on compact phones. */
@media (max-width: 360px) {
  .p-header { gap: 7px; padding-inline: 10px; }
  .p-brand { gap: 6px; }
  .p-brand .p-brand-mark { flex-basis: 46px; width: 46px; height: 48px; }
  .p-brand .p-brand-title { font-size: 10.5px; white-space: normal; line-height: 1.35; }
  .p-brand .p-brand-tagline { font-size: 7px; line-height: 1.35; }
  .p-brand--en .p-brand-tagline { font-size: 8px; }
  .p-contact { font-size: 11px; padding: 11px 8px; }
  .p-mobile { padding: 6px 7px; }
}
