/* ENH Training. Brand book typography, original hexagonal artwork and page rhythm. */
@font-face {
  font-family: 'Barlow Condensed';
  src: url('fonts/barlow-condensed-600.ttf') format('truetype');
  font-style: normal;
  font-weight: 600;
  font-display: swap;
}

:root {
  --font-display: 'Barlow Condensed', 'Arial Narrow', Arial, sans-serif;
}

body { font-size: 16px; }
h1, h2, h3, h4 {
  font-family: var(--font-display);
  font-weight: 600;
  letter-spacing: .005em;
  line-height: 1.12;
}
h1, h2, h3 { text-transform: uppercase; }
.page-title { font-family: var(--font-display); font-size: 48px; font-weight: 600; line-height: 1.1; }
.page-intro, .prose p, .prose li, .about-copy > p { font-size: 16px; line-height: 1.85; }
.prose h2, .privacy-content h2 { font-size: 38px; }
.prose h3, .sidebar h3 { font-size: 29px; }
.course-title, .centre-heading, .centre-featured .centre-heading, .centre-secondary .centre-heading { font-family: var(--font-display); font-size: 31px; font-weight: 600; }
.course-excerpt, .centre-body > p, .centre-secondary .centre-body > p, .catalog-note { font-size: 14px; }
.course-meta, .course-footer, .centre-location { font-size: 12px; }
.button, .text-link, .showcase-link { font-family: var(--font-body); }
.utility-bar { background: var(--navy); }
.utility-inner { min-height: 32px; }
.nav-wrap { min-height: 90px; }
.brand img { width: 200px; height: 67px; object-fit: contain; }
.main-nav a { font-family: var(--font-body); font-size: 14px; }
.home-slider { border-bottom: 4px solid var(--accent); }

/* The centres are the first clear choice after the banner. */
.training-centres { padding-block: 58px 64px; background: var(--bg); }
.brand-section-heading { position: relative; margin-bottom: 31px; padding-top: 24px; }
.brand-section-heading::before {
  content: '';
  position: absolute;
  inset: 0 0 auto;
  height: 3px;
  background: linear-gradient(90deg, var(--blue), var(--accent));
}
.brand-section-heading h1 { color: var(--navy); font-size: 44px; line-height: 1.1; margin: 0 0 11px; }
.brand-section-heading p { color: var(--muted); font-size: 16px; line-height: 1.7; max-width: 720px; }
.training-centre-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 27px; }
.training-centre {
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  border-bottom: 4px solid var(--blue);
  border-radius: 4px;
  background: var(--bg);
}
.training-centre > a { display: flex; flex-direction: column; height: 100%; color: inherit; }
.training-centre-photo { display: block; height: 275px; flex-shrink: 0; overflow: hidden; background: var(--tint); }
.training-centre-photo img, img.training-centre-photo {
  display: block;
  width: 100%;
  height: 275px;
  object-fit: cover;
  object-position: center;
  transition: transform .25s ease;
}
.training-centre-copy { display: flex; flex-direction: column; align-items: flex-start; flex: 1; padding: 24px 25px 25px; }
.training-centre-location { margin: 0 0 8px; color: var(--muted); font-size: 12px; line-height: 1.5; }
.training-centre-copy h2 { color: var(--navy); font-size: 34px; line-height: 1.1; margin: 0 0 15px; }
.training-centre-description { color: var(--muted); font-size: 14px; line-height: 1.8; margin: 0; }
.training-centre-link { display: inline-block; padding-top: 21px; margin-top: auto; color: var(--navy); font-family: var(--font-body); font-size: 13px; font-weight: 700; line-height: 1.5; text-decoration: underline; text-underline-offset: 4px; }
.training-centre:hover .training-centre-photo img, .training-centre:hover img.training-centre-photo { transform: scale(1.025); }
.training-centre:hover .training-centre-link { color: var(--blue); }
.training-centre:focus-within { outline: 3px solid var(--blue); outline-offset: 5px; }

/* The illustrations are original vector paths from page 39 of the ENH manual. */
.brand-story {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  padding-block: 56px;
  color: var(--bg);
  background: linear-gradient(90deg, rgba(18, 48, 84, .35), rgba(18, 48, 84, 0) 76%), linear-gradient(110deg, var(--blue), var(--accent));
}
.brand-story::before {
  content: '';
  position: absolute;
  z-index: -1;
  top: -16%;
  right: -52px;
  bottom: -16%;
  width: 230px;
  opacity: .18;
  background: url('enh-hex-pattern.svg') right center / auto 100% no-repeat;
  pointer-events: none;
}
.brand-story-grid { display: grid; grid-template-columns: 1.5fr .7fr; gap: 70px; align-items: center; }
.brand-story-copy { max-width: 680px; }
.brand-story-copy .brand-kicker { margin: 0 0 16px; font-family: var(--font-body); font-size: 15px; font-weight: 700; line-height: 1.5; }
.brand-story-copy h2 { color: var(--bg); font-size: 48px; line-height: 1.1; max-width: 650px; margin: 0 0 22px; }
.brand-story-copy p:not(.brand-kicker), .brand-story-copy .factual { max-width: 610px; color: var(--bg); font-size: 16px; line-height: 1.85; margin: 0; }
.brand-story-copy .button { margin-top: 27px; font-size: 14px; }
.brand-story-copy .button-white { background: var(--bg); color: var(--navy); }
.brand-story-copy .button-white:hover { background: var(--tint); }
.brand-story-art { display: flex; justify-content: center; align-items: center; min-width: 0; }
.brand-story-art img { display: block; width: 208px; height: auto; max-height: 315px; object-fit: contain; }

/* Existing mark and plain names preserve the actual identity of each centre. */
.training-network { padding-block: 52px 57px; background: var(--bg); }
.training-network h2 { color: var(--navy); font-size: 36px; line-height: 1.15; margin-bottom: 30px; }
.network-identities { display: grid; grid-template-columns: 1fr 1.15fr 1.15fr; align-items: center; gap: 36px; }
.network-identities > * { min-width: 0; }
.network-identities > * + * { padding-left: 36px; border-left: 1px solid var(--line); }
.network-cefogas { display: flex; align-items: center; min-height: 96px; }
.network-cefogas img { display: block; width: auto; height: auto; max-width: 205px; max-height: 96px; object-fit: contain; }
.network-wordmark { display: flex; flex-direction: column; justify-content: center; min-height: 96px; }
.network-wordmark strong { color: var(--navy); font-family: var(--font-body); font-size: 25px; font-weight: 700; line-height: 1.3; }
.network-wordmark small { display: block; color: var(--muted); font-family: var(--font-body); font-size: 13px; font-weight: 400; line-height: 1.7; margin-top: 7px; }

/* Contact information remains direct, with the geographical area alongside it. */
.contact-details-grid { gap: 40px; }
.contact-details-grid h2, .contact-details-grid h3 { color: var(--navy); font-family: var(--font-display); font-size: 26px; font-weight: 600; margin-bottom: 12px; }
.contact-details-grid a, .contact-details-grid p { font-size: 15px; }
.operations-section { margin-top: 53px; padding-top: 35px; border-top: 3px solid var(--accent); }
.operations-section > h2, .operations-section > header h2, .operations-section .operations-heading h2 { color: var(--navy); font-size: 40px; line-height: 1.1; margin: 0 0 13px; }
.operations-section > p, .operations-section > header p, .operations-section .operations-heading p { max-width: 720px; color: var(--muted); font-size: 16px; line-height: 1.8; margin-bottom: 28px; }
.operations-grid { display: grid; grid-template-columns: minmax(320px, .95fr) minmax(0, 1.05fr); gap: 65px; align-items: center; }
.operations-map { display: flex; align-items: center; justify-content: center; padding: 24px; min-width: 0; background: var(--tint); border: 1px solid var(--line); border-radius: 4px; }
.operations-map img, img.operations-map { display: block; width: 100%; max-width: 410px; height: auto; max-height: 610px; object-fit: contain; }
.operations-locations { display: flex; flex-direction: column; min-width: 0; }
.operations-locations > div, .operations-locations > article { padding-block: 23px; border-bottom: 1px solid var(--line); }
.operations-locations > div:first-child, .operations-locations > article:first-child { padding-top: 0; }
.operations-locations h3 { color: var(--navy); font-family: var(--font-display); font-size: 29px; font-weight: 600; line-height: 1.15; margin: 0 0 10px; }
.operations-locations p { max-width: 450px; color: var(--muted); font-size: 15px; line-height: 1.8; margin: 0; }
.operations-locations a { display: inline-block; color: var(--navy); font-family: var(--font-body); font-size: 13px; line-height: 1.6; margin-top: 12px; text-decoration: underline; text-underline-offset: 4px; }

/* Repeat all navigation in the footer, with the brand's original margin artwork. */
.site-footer { position: relative; overflow: hidden; isolation: isolate; background: var(--navy); color: var(--bg); padding-top: 0; }
.site-footer::before { content: ''; position: absolute; z-index: -1; inset: 0 -65px 0 auto; width: 240px; opacity: .12; pointer-events: none; background: url('enh-hex-pattern.svg') right center / auto 122% no-repeat; }
.footer-top { position: relative; display: grid; grid-template-columns: 1.12fr .85fr 1.15fr 1.4fr; gap: 35px; align-items: start; padding-block: 45px 40px; }
.footer-brand { min-width: 0; }
.footer-brand > a { display: inline-block; padding: 12px 14px; border-radius: 3px; background: var(--bg); }
.footer-brand img { display: block; width: 200px; height: 67px; max-width: 100%; object-fit: contain; }
.footer-brand > p { color: var(--bg); opacity: .9; font-size: 14px; line-height: 1.75; margin-top: 18px; }
.footer-column { min-width: 0; }
.footer-column h3, .footer-column h4 { color: var(--bg); font-family: var(--font-display); font-size: 26px; font-weight: 600; line-height: 1.15; letter-spacing: .01em; text-transform: uppercase; margin: 0 0 19px; }
.footer-column > a { display: block; margin-block: 6px; }
.footer-column a, .footer-column p, .footer-menu a { color: var(--bg); opacity: .88; font-family: var(--font-body); font-size: 13px; line-height: 1.85; overflow-wrap: anywhere; }
.footer-column a:hover, .footer-menu a:hover { color: var(--bg); opacity: 1; text-decoration: underline; text-underline-offset: 4px; }
.footer-column p { margin-top: 12px; }
.footer-menu, ul.footer-menu, .footer-menu ul { display: block; margin: 0; padding: 0; list-style: none; }
.footer-menu li { display: block; list-style: none; margin: 0; padding: 0; }
.footer-menu li + li { margin-top: 6px; }
.footer-menu a { display: inline-block; }
.footer-menu a[aria-current='page'] { opacity: 1; text-decoration: underline; text-underline-offset: 4px; }
.footer-bottom { position: relative; min-height: 67px; border-top: 1px solid rgba(255, 255, 255, .22); font-size: 12px; color: var(--bg); }
.footer-bottom > span { opacity: .82; }
.footer-links { flex-wrap: wrap; }
.footer-links a { color: var(--bg); opacity: .88; font-size: 12px; }

@media (max-width: 1120px) {
  .training-centre-grid { gap: 22px; }
  .training-centre-photo, .training-centre-photo img, img.training-centre-photo { height: 245px; }
  .training-centre-copy { padding: 22px; }
  .training-centre-copy h2 { font-size: 31px; }
  .brand-story-grid { gap: 42px; }
  .footer-top { grid-template-columns: 1.15fr .8fr 1.15fr 1.3fr; gap: 25px; }
  .footer-brand > a { padding: 10px 12px; }
  .footer-brand img { width: 175px; height: 59px; }
}

@media (max-width: 1024px) {
  .nav-wrap { min-height: 86px; }
  .brand img { width: 185px; height: 62px; }
  .main-nav a { font-size: 15px; }
  .training-centres { padding-block: 46px 52px; }
  .brand-section-heading h1 { font-size: 40px; }
  .training-centre-grid { gap: 18px; }
  .training-centre-photo, .training-centre-photo img, img.training-centre-photo { height: 215px; }
  .training-centre-copy { padding: 21px 20px 23px; }
  .training-centre-copy h2 { font-size: 30px; }
  .training-centre-description { font-size: 14px; }
  .brand-story-copy h2 { font-size: 43px; }
  .brand-story-copy p:not(.brand-kicker) { font-size: 15px; }
  .brand-story-art img { width: 190px; }
  .network-identities { gap: 26px; }
  .network-identities > * + * { padding-left: 26px; }
  .network-wordmark strong { font-size: 22px; }
  .network-cefogas img { max-width: 175px; }
  .operations-grid { gap: 35px; grid-template-columns: minmax(280px, 1fr) minmax(0, 1fr); }
  .operations-map { padding: 16px; }
  .footer-top { grid-template-columns: 1fr 1fr; gap: 35px 45px; }
  .footer-brand { grid-column: auto; }
  .footer-brand img { width: 200px; height: 67px; }
}

@media (max-width: 768px) {
  body { font-size: 15px; }
  .page-title { font-size: 40px; }
  .page-intro, .prose p, .prose li, .about-copy > p { font-size: 15px; line-height: 1.8; }
  .prose h2, .privacy-content h2 { font-size: 33px; }
  .prose h3, .sidebar h3 { font-size: 27px; }
  .nav-wrap { min-height: 82px; }
  .brand img { width: 175px; height: 59px; }
  .training-centres { padding-block: 36px 42px; }
  .brand-section-heading { padding-top: 21px; margin-bottom: 26px; }
  .brand-section-heading h1 { font-size: 36px; margin-bottom: 10px; }
  .brand-section-heading p { font-size: 15px; }
  .training-centre-grid { grid-template-columns: 1fr; gap: 25px; }
  .training-centre > a { display: grid; grid-template-columns: .9fr 1.1fr; }
  .training-centre-photo, .training-centre-photo img, img.training-centre-photo { height: 100%; min-height: 245px; }
  .training-centre-copy { padding: 24px; }
  .training-centre-copy h2 { font-size: 32px; }
  .training-centre-description { font-size: 14px; }
  .training-centre-link { padding-top: 19px; }
  .brand-story { padding-block: 40px; }
  .brand-story::before { right: -88px; width: 210px; opacity: .14; }
  .brand-story-grid { grid-template-columns: 1fr 170px; gap: 25px; }
  .brand-story-copy .brand-kicker { font-size: 14px; margin-bottom: 13px; }
  .brand-story-copy h2 { font-size: 36px; margin-bottom: 18px; }
  .brand-story-copy p:not(.brand-kicker) { font-size: 15px; line-height: 1.8; }
  .brand-story-art img { width: 170px; }
  .training-network { padding-block: 39px 43px; }
  .training-network h2 { font-size: 32px; margin-bottom: 25px; }
  .network-identities { grid-template-columns: 1fr; gap: 23px; }
  .network-identities > * + * { padding-left: 0; padding-top: 22px; border-left: 0; border-top: 1px solid var(--line); }
  .network-cefogas, .network-wordmark { min-height: 0; }
  .network-cefogas img { max-width: 205px; max-height: 86px; }
  .network-wordmark strong { font-size: 23px; }
  .network-wordmark small { font-size: 13px; margin-top: 4px; }
  .contact-details-grid h2, .contact-details-grid h3 { font-size: 25px; }
  .operations-section { margin-top: 39px; padding-top: 29px; }
  .operations-section > h2, .operations-section > header h2, .operations-section .operations-heading h2 { font-size: 35px; }
  .operations-section > p, .operations-section > header p, .operations-section .operations-heading p { font-size: 15px; margin-bottom: 24px; }
  .operations-grid { grid-template-columns: 1fr; gap: 30px; }
  .operations-map { padding: 20px; }
  .operations-map img, img.operations-map { max-width: 370px; max-height: 560px; }
  .operations-locations h3 { font-size: 28px; }
  .operations-locations p { font-size: 15px; max-width: none; }
  .footer-top { grid-template-columns: 1fr 1fr; gap: 32px; padding-block: 35px; }
  .footer-brand { grid-column: 1 / -1; }
  .footer-brand img { width: 180px; height: 60px; }
  .footer-column h3, .footer-column h4 { font-size: 25px; }
  .footer-column a, .footer-column p, .footer-menu a { font-size: 13px; }
  .footer-bottom { align-items: flex-start; padding-block: 20px; }
  .footer-links { gap: 16px; }
}

@media (max-width: 480px) {
  .page-title { font-size: 36px; }
  .brand img { width: 166px; height: 56px; }
  .nav-wrap { min-height: 78px; }
  .brand-section-heading h1 { font-size: 34px; }
  .brand-section-heading p { font-size: 15px; }
  .training-centre > a { display: flex; flex-direction: column; }
  .training-centre-photo, .training-centre-photo img, img.training-centre-photo { width: 100%; height: 220px; min-height: 0; }
  .training-centre-copy { padding: 22px; }
  .training-centre-copy h2 { font-size: 32px; line-height: 1.08; margin-bottom: 13px; }
  .training-centre-description { font-size: 14px; }
  .training-centre-location { font-size: 12px; }
  .training-centre-link { font-size: 13px; }
  .brand-story { padding-block: 36px; }
  .brand-story-grid { grid-template-columns: 1fr; gap: 26px; }
  .brand-story-copy h2 { font-size: 34px; max-width: 310px; }
  .brand-story-copy p:not(.brand-kicker) { font-size: 15px; }
  .brand-story-copy .button { font-size: 14px; max-width: 100%; white-space: normal; }
  .brand-story-art { justify-content: flex-end; height: 155px; overflow: hidden; }
  .brand-story-art img { width: 150px; height: auto; max-height: none; transform: translateY(8px); }
  .brand-story::before { right: -85px; opacity: .12; background-size: auto 85%; }
  .training-network h2 { font-size: 31px; }
  .network-cefogas img { max-width: 200px; }
  .contact-details-grid a, .contact-details-grid p { font-size: 15px; }
  .operations-section > h2, .operations-section > header h2, .operations-section .operations-heading h2 { font-size: 33px; }
  .operations-map { padding: 12px; }
  .operations-map img, img.operations-map { max-height: 540px; }
  .operations-locations h3 { font-size: 27px; }
  .operations-locations p { font-size: 15px; }
  .footer-top { grid-template-columns: 1fr; gap: 29px; }
  .footer-brand { grid-column: auto; }
  .footer-brand > a { padding: 10px 12px; }
  .footer-column h3, .footer-column h4 { font-size: 25px; margin-bottom: 14px; }
  .footer-column a, .footer-column p, .footer-menu a { font-size: 14px; }
  .footer-bottom { flex-direction: column; gap: 12px; font-size: 12px; }
  .footer-links a { font-size: 13px; }
}

@media (prefers-reduced-motion: reduce) {
  .training-centre-photo img, img.training-centre-photo { transition: none; }
  .training-centre:hover .training-centre-photo img, .training-centre:hover img.training-centre-photo { transform: none; }
}

/* Photo anchors and text are separate elements in the WordPress centre cards. */
.training-centre{display:flex;flex-direction:column}.training-centre>a.training-centre-photo{display:block;flex:0 0 245px;height:245px;min-height:0}.training-centre-photo img{height:245px;min-height:0}.operations-section .brand-section-heading h2{font-family:var(--font-display);font-size:40px;color:var(--navy);margin-bottom:12px}.operations-section .brand-section-heading::before{display:none}
@media(max-width:768px){.training-centre{display:grid;grid-template-columns:.85fr 1.15fr;align-items:stretch}.training-centre>a.training-centre-photo{display:block;height:100%;min-height:245px;flex:none}.training-centre-photo img{height:100%;min-height:245px;object-fit:cover}.training-centre-copy{padding:22px}.operations-section .brand-section-heading h2{font-size:35px}}
@media(max-width:480px){.training-centre{grid-template-columns:.65fr 1.35fr}.training-centre>a.training-centre-photo{height:100%;min-height:240px}.training-centre-photo img{height:100%;min-height:240px}.training-centre-copy{padding:21px 18px}.training-centre-copy h2{font-size:29px}.training-centre-description{font-size:13px}.training-centre-link{font-size:12px}.operations-section .brand-section-heading h2{font-size:33px}}

/* Original page 41 illustrations, shared directly below the navigation. */
.brand-illustration-strip{background:#fff;border-bottom:1px solid var(--line);padding-block:13px}.brand-illustration-strip img{width:100%;height:106px;object-fit:contain;object-position:center;display:block}.illustration-page-hero{background:#fff;border-bottom:1px solid var(--line);padding-block:34px 40px}.illustration-page-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:60px;align-items:center}.illustration-page-copy{min-width:0}.illustration-page-copy .breadcrumbs{margin-bottom:19px}.illustration-page-copy .page-title{font-size:48px;line-height:1.08;color:var(--navy);margin:0;max-width:730px}.illustration-page-copy .page-intro{font-size:16px;line-height:1.8;max-width:650px;margin-top:17px}.illustration-page-art{display:block;min-width:0}.illustration-page-art img{width:100%;height:230px;display:block;object-fit:contain;object-position:right center}.site-footer .footer-brand>a{padding:13px 16px;background:#fff}.site-footer .footer-brand img{width:200px;height:67px;max-width:100%;object-fit:contain}
@media(max-width:1024px){.illustration-page-grid{gap:36px}.illustration-page-copy .page-title{font-size:42px}.illustration-page-art img{height:205px}.brand-illustration-strip img{height:95px}}
@media(max-width:768px){.illustration-page-hero{padding-block:25px 29px}.illustration-page-grid{grid-template-columns:1fr;gap:24px}.illustration-page-copy .page-title{font-size:39px}.illustration-page-copy .page-intro{font-size:15px}.illustration-page-art img{height:82px;object-position:center}.brand-illustration-strip{padding-block:10px}.brand-illustration-strip img{height:75px}.site-footer .footer-brand img{width:180px;height:60px}}
@media(max-width:480px){.illustration-page-copy .page-title{font-size:35px}.illustration-page-art img{height:68px}.brand-illustration-strip img{height:64px}.illustration-page-copy .breadcrumbs{font-size:11px;margin-bottom:16px}}

/* The official PNG is transparent; keep the footer logo free of a white card. */
.site-footer .footer-brand > a{background:transparent;padding:0;border-radius:0}

/* Supplied colour and white logo variants; preserve their square proportions. */
.site-header{background:#497BC6;border-bottom-color:rgba(255,255,255,.25)}
.site-header .nav-wrap{min-height:116px}
.site-header .brand{background:#fff;padding:4px;border-radius:3px}
.site-header .brand img{display:block;width:104px;height:104px;object-fit:contain}
.site-header .main-nav a,.site-header .header-cta{color:#fff;font-size:19px;font-weight:700}
.site-header .main-nav a::after{background:#fff}
.site-header .header-cta:hover{color:#fff}
.site-header a:focus-visible,.site-header button:focus-visible{outline:2px solid #fff;outline-offset:4px}
.site-header .menu-toggle{background:transparent;border-color:#fff;color:#fff}
.site-footer .footer-brand img{width:150px;height:150px;object-fit:contain}
@media(max-width:1024px){.site-header .main-nav{background:#497BC6;max-height:calc(100svh - 116px)}.site-header .main-nav a{border-bottom-color:rgba(255,255,255,.25)}}
@media(max-width:480px){.site-header .nav-wrap{min-height:96px}.site-header .brand img{width:84px;height:84px}.site-header .main-nav{max-height:calc(100svh - 96px)}}

/* White navigation with a smaller logo and the original navy top bar/footer. */
.site-header{background:#fff;border-bottom-color:var(--line)}
.site-header .nav-wrap{min-height:100px}
.site-header .brand img{width:88px;height:88px}
.site-header .main-nav a,.site-header .header-cta{color:var(--navy);font-size:14px;font-weight:600}
.site-header .main-nav a::after{background:#497BC6}
.site-header .header-cta:hover{color:#497BC6}
.site-header a:focus-visible,.site-header button:focus-visible{outline-color:#497BC6}
.site-header .menu-toggle{background:#fff;border-color:var(--line);color:var(--navy)}
.utility-bar,.site-footer{background:#123054}
.site-footer .footer-brand>p,.site-footer .footer-column a,.site-footer .footer-column p,.site-footer .footer-menu a,.site-footer .footer-bottom>span,.site-footer .footer-bottom>p,.site-footer .footer-links a{opacity:1}
@media(max-width:1024px){.site-header .main-nav{background:#fff;max-height:calc(100svh - 100px)}.site-header .main-nav a{font-size:15px;border-bottom-color:var(--line)}}
@media(max-width:480px){.site-header .nav-wrap{min-height:84px}.site-header .brand img{width:72px;height:72px}.site-header .main-nav{max-height:calc(100svh - 84px)}}
