/* Adapted from the published Halogen component styles. */
.cp-wrap { width: calc(100% - 112px); max-width: 1600px; margin-inline: auto; }
.cp-nav-overlay .cp-brand img, .cp-footer .cp-brand img { filter: brightness(0) invert(1); }
.cp-button { display: inline-flex; justify-content: center; align-items: center; gap: 25px; min-height: 46px; padding: 13px 25px; border: 1px solid var(--cp-ink); border-radius: 999px; background: var(--cp-ink); font-weight: 600; line-height: 1.3; text-align: center; transition: background 0.2s, transform 0.2s; color: white !important; font-size: 13px !important; }
.cp-button:hover { background: rgb(67, 94, 115); transform: translateY(-2px); }
.cp-button svg { flex-shrink: 0; }
.cp-button:disabled { opacity: 0.5; cursor: not-allowed; transform: none; }
.cp-footer { background: rgb(32, 33, 31); color: rgb(244, 243, 238); padding: 75px 0px 30px; }
.cp-footer-grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: 45px; }
.cp-footer-grid .cp-brand { text-align: left; font-size: 32px; }
.cp-footer-grid > div > p { margin-top: 30px; font-size: 13px; color: rgb(188, 190, 183); }
.cp-footer nav { display: flex; flex-direction: column; align-items: start; gap: 14px; font-size: 13px; }
.cp-footer nav a:hover { text-decoration: underline; text-underline-offset: 4px; }
.cp-footer nav button { padding: 0px; background: none; border: 0px; font-size: 13px; }
.cp-footer-bottom { display: flex; justify-content: space-between; gap: 30px; border-top: 1px solid rgba(255, 255, 255, 0.15); margin-top: 70px; padding-top: 25px; font-size: 11px; color: rgb(188, 190, 183); }
.cp-footer-bottom a { display: flex; gap: 15px; align-items: center; }
@container (max-width: 1100px) {
.cp-wrap { width: calc(100% - 64px); }
.cp-footer-grid { grid-template-columns: 1.3fr 1fr 1fr; gap: 35px; }
.cp-footer-grid > nav:last-child { grid-column: 1 / -1; flex-flow: wrap; gap: 15px 25px; }
}
@container (max-width: 700px) {
.cp-wrap { width: calc(100% - 40px); }
.cp-button { padding: 12px 18px; gap: 18px; min-height: 44px; font-size: 12px !important; }
.cp-footer { padding-top: 55px; }
.cp-footer-grid { grid-template-columns: 1fr 1fr; gap: 45px 25px; }
.cp-footer-grid > div { grid-column: 1 / -1; }
.cp-footer-grid > div > p { margin-top: 24px; }
.cp-footer-grid > nav:last-child { display: flex; flex-direction: column; gap: 13px; grid-column: 1 / -1; padding-top: 30px; border-top: 1px solid rgba(255, 255, 255, 0.15); }
.cp-footer-bottom { flex-direction: column; margin-top: 45px; gap: 20px; font-size: 10px; }
}
.cp-hero, .cp-data-story, .cp-software-story, .cp-people-story, .cp-landscape, .cp-feature, .cp-callout, .cp-footer { border-radius: var(--cp-section-radius); overflow: hidden; margin: 12px; }
@container (max-width: 700px) {
.cp-hero, .cp-data-story, .cp-software-story, .cp-people-story, .cp-landscape, .cp-feature, .cp-callout, .cp-footer { --cp-section-radius: 33px; --cp-card-radius: 18px; margin: 8px; }
}
.cp-updates.cp-wrap { padding-top: 100px; }
.cp-footer nav a { line-height: 1.5; }
@container (max-width: 700px) {
.cp-updates.cp-wrap { padding-top: 65px; }
}
.cp-footer { background: var(--panel); color: #000; padding: 86px 0px 40px; }
.cp-footer-main { max-width: none; }
.cp-footer-about { max-width: 900px; padding-bottom: 48px; }
.cp-footer-about h2 { font-size: clamp(42px, 4vw, 68px); margin-bottom: 22px; }
.cp-footer-about p { max-width: 750px; color: inherit; }
.cp-footer-about .cp-button { display: inline-flex; margin-top: 28px; background: rgb(255, 255, 255); border-color: rgb(255, 255, 255); min-height: 52px; color: rgb(32, 33, 31) !important; font-size: 15px !important; }
.cp-footer-links { display: grid; grid-template-columns: repeat(4, minmax(0px, 1fr)); gap: 32px; max-width: 1080px; padding-top: 24px; }
.cp-footer-links nav { display: flex; flex-direction: column; align-items: flex-start; gap: 13px; }
.cp-footer-links h3 { font-size: 17px; letter-spacing: 0px; margin-bottom: 10px; }
.cp-footer-links a, .cp-footer-links button { font-size: 15px; color: inherit; line-height: 1.35; }
.cp-footer-links nav button { font-size: 15px; line-height: 1.5; }
.cp-footer-links a:hover, .cp-footer-links button:hover { text-decoration: underline; text-underline-offset: 4px; }
.cp-footer-links button { background: none; border: 0px; padding: 0px; text-align: left; }
.cp-footer-bottom { display: flex; align-items: center; justify-content: space-between; gap: 32px; border: 0px; margin-top: 70px; padding: 0px; font-size: 13px; color: inherit; }
.cp-iso-icons { display: flex; gap: 13px; align-items: center; flex-wrap: wrap; }
.cp-iso-icons img { width: 116px; height: auto; object-fit: contain; }
.cp-application-heading.cp-wrap { display: flex; align-items: end; justify-content: space-between; gap: 44px; width: calc(100% - 112px); max-width: 1600px; margin-bottom: 42px; }
@container (max-width: 1100px) {
.cp-footer-links { grid-template-columns: repeat(2, minmax(0px, 1fr)); max-width: 760px; }
}
@container (max-width: 1100px) {
.cp-application-heading.cp-wrap { width: calc(100% - 64px); align-items: flex-start; }
}
@container (max-width: 700px) {
.cp-footer { margin: 8px; border-radius: 33px; padding: 59px 0px 35px; }
.cp-footer-about { padding-bottom: 38px; }
.cp-footer-about h2 { font-size: 42px; }
.cp-footer-about .cp-button { min-height: 48px; font-size: 14px !important; }
.cp-footer-links { gap: 36px 16px; padding-top: 20px; }
.cp-footer-links h3 { font-size: 15px; }
.cp-footer-links a, .cp-footer-links button { font-size: 13px; }
.cp-footer-bottom { align-items: flex-start; flex-direction: column; margin-top: 50px; gap: 25px; font-size: 12px; }
.cp-iso-icons { gap: 8px; }
.cp-iso-icons img { width: 91px; }
}
@container (max-width: 700px) {
.cp-application-heading.cp-wrap { display: block; width: calc(100% - 40px); margin-bottom: 27px; }
}
.cp-button { min-height: 52px; padding: 15px 27px; font-size: 14px !important; }
.cp-range-heading > .cp-button, .cp-section-heading > .cp-button, .cp-mission-copy .cp-button, .cp-footer-about .cp-button, .cp-policy-banner-copy .cp-button, .cp-application-heading > .cp-button, .cp-applications-section .cp-application-grid .cp-button { min-height: 58px; padding: 16px 26px; font-size: 16px !important; }
@container (max-width: 700px) {
.cp-button { min-height: 50px; padding: 13px 21px; font-size: 13px !important; }
.cp-range-heading > .cp-button, .cp-section-heading > .cp-button, .cp-mission-copy .cp-button, .cp-footer-about .cp-button, .cp-policy-banner-copy .cp-button, .cp-application-heading > .cp-button, .cp-applications-section .cp-application-grid .cp-button, .cp-datasheet-request .cp-button { min-height: 53px; padding: 14px 22px; font-size: 15px !important; }
}
@container (max-width: 700px) {
.cp-footer-links nav button { font-size: 13px; }
}
.cp-updates:not(.cp-wrap) .cp-page-hero .cp-hero-content { width: min(1220px, 100% - 10vw); max-width: 1220px; }
@container (max-width: 700px) {
.cp-updates:not(.cp-wrap) .cp-page-hero .cp-hero-content { width: auto; max-width: none; }
}
.cp-direction-marker { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; width: 64px; height: 64px; border-radius: 17px; background: rgb(242, 163, 91); color: rgb(32, 33, 31); }
.cp-direction-marker svg { position: static; width: 38px; height: 38px; bottom: auto; right: auto; transition: transform 0.2s; }
.cp-company-destinations .cp-direction-marker { position: absolute; right: 28px; bottom: 28px; }
.cp-company-destinations > a:nth-child(2) .cp-direction-marker { background: rgb(201, 168, 206); }
.cp-company-destinations > a:nth-child(3) .cp-direction-marker { background: rgb(231, 232, 189); }
.cp-wayfinding-button .cp-direction-marker { width: 64px; height: 64px; border-radius: 16px; }
@container (max-width: 1100px) {
.cp-company-destinations .cp-direction-marker { right: 24px; bottom: 24px; }
}
@container (max-width: 700px) {
.cp-direction-marker { width: 60px; height: 60px; border-radius: 16px; }
.cp-direction-marker svg { width: 36px; height: 36px; }
.cp-wayfinding-button .cp-direction-marker { width: 60px; height: 60px; }
}
@media (prefers-reduced-motion: reduce) {
.cp-direction-marker svg { transition: none; }
.cp-company-destinations > a:hover .cp-direction-marker svg, .cp-wayfinding-button:hover .cp-direction-marker svg { transform: none; }
}
.cp-hero-content > p:not(.cp-label), .cp-inner-hero .cp-hero-content > p:not(.cp-label), .cp-intro > p:last-child, .cp-page-heading > p:not(.cp-label), .cp-range-heading p, .cp-data-heading > p:last-child, .cp-data-steps p, .cp-software-grid > div > p:not(.cp-label), .cp-model-flow p, .cp-people-story p:not(.cp-label), .cp-scenic-copy > p:not(.cp-label), .cp-scenic-water .cp-scenic-copy > p:not(.cp-label), .cp-reading-head > p, .cp-mythe-heading > div > p:last-child, .cp-mission-copy p, .cp-system-copy > p:not(.cp-label), .cp-footer-about p, .cp-application-heading > div > p:last-child, .cp-application-grid p:not(.cp-label), .cp-applications-section .cp-application-grid article > p:not(.cp-label), .cp-about-intro > p, .cp-company-grid p:not(.cp-label), .cp-about-page .cp-company-grid p:not(.cp-label), .cp-company-links p, .cp-editorial p:not(.cp-label), .cp-product-detail p, .cp-feature-media p, .cp-landscape p:not(.cp-label), .cp-datasheet-request p:not(.cp-label), .cp-contact-copy > p:not(.cp-label), .cp-contact-section .cp-contact-copy > p, .cp-contact-section .cp-enquiry-intro, .cp-journal-header > p, .cp-journal-cta p, .cp-article-heading > p:last-child, .cp-process p, .cp-product-insight > p, .cp-product-insight article p, .cp-note > p, .cp-project-steps article > p, .cp-parameter p:not(.cp-label), .cp-news-grid p:not(.cp-label), .cp-resource-grid p:not(.cp-label), .cp-news-more p, .cp-faq details p, .cp-callout > p, .cp-callout-copy > p, .cp-policy-banner-copy > p:not(.cp-label), .cp-product-copy > p:not(.cp-label), .cp-contact-details article > p:not(.cp-label), .cp-contact-details address { font-size: var(--cp-body-size); line-height: var(--cp-body-leading); }
.footer-reference .cp-direction-marker, .footer-reference .cp-wayfinding-button .cp-direction-marker { position: static; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; width: 38px; height: 38px; border-radius: 11px; background: var(--cp-marker-bg,#e6e9e2); color: var(--cp-marker-ink,#20211f); }
.footer-reference .cp-direction-marker svg { width: 20px; height: 20px; transition: transform 0.2s; }
.cp-people-story, .cp-footer { --cp-marker-bg: #e0e5dd; }
.cp-footer { --cp-button-bg: #fff; --cp-button-ink: #20211f; }
.footer-reference .cp-company-links > a > .cp-direction-marker { position: absolute; right: 24px; bottom: 24px; }
.footer-reference .cp-menu-card > .cp-direction-marker { position: absolute; right: 16px; bottom: 16px; background: rgb(244, 243, 238); }
@media (prefers-reduced-motion: reduce) {
.footer-reference .cp-direction-marker svg { transition: none; transform: none !important; }
}
@container (max-width: 700px) {
.cp-water-explanation > .cp-wrap { width: calc(100% - 40px); }
}
.footer-reference .cp-footer-links { width: 100%; max-width: 980px; margin-right: auto; margin-left: 0px; grid-template-columns: 1fr 1fr 1fr 1.35fr; gap: 28px; text-align: left; }
.footer-reference .cp-footer-about .cp-wayfinding-button.cp-button { --cp-button-bg: #000; --cp-button-ink: #fff; --cp-marker-bg: var(--accent); --cp-marker-ink: #fff; --cp-button-hover-bg: #343a3b; --cp-button-hover-ink: #fff; }
@container (max-width: 1000px) {
.footer-reference .cp-footer-links { max-width: 680px; grid-template-columns: repeat(2, minmax(0px, 1fr)); gap: 32px 24px; }
}
.footer-reference .cp-footer-links { grid-template-columns: 180px minmax(0px, 1fr); gap: 40px; max-width: 820px; align-items: start; }
.cp-footer-page-columns { display: grid; grid-template-columns: 140px 140px minmax(0px, 1fr); gap: 20px; align-items: start; min-width: 0px; }
.cp-footer-links nav { min-width: 0px; align-self: start; }
.footer-reference .cp-footer-products > a { font-family: var(--font-onest,Onest),Arial,sans-serif; font-size: 24px; font-weight: 650; line-height: 1.2; letter-spacing: var(--cp-heading-tracking); color: inherit; }
.footer-reference .cp-footer-bottom { align-items: center; gap: 32px; }
.cp-footer-identity { display: flex; align-items: center; min-width: 0px; }
.cp-footer-identity > p { font-size: 12px; line-height: 1.5; color: inherit; }
.footer-reference .cp-footer-linkedin { display: inline-flex; align-items: center; justify-content: space-between; flex: 0 0 auto; gap: 8px; width: 152px; height: 40px; min-height: 40px; max-width: 100%; padding: 6px 7px; color: rgb(255, 255, 255); background: rgb(10, 102, 194); text-decoration: none; border-radius: 10px; transition: background-color 0.2s; }
.cp-footer-social-logo { display: flex; align-items: center; justify-content: center; flex: 0 0 auto; width: 26px; height: 26px; border-radius: 7px; background: transparent; color: rgb(255, 255, 255); }
.cp-footer-social-logo svg { display: block; width: 20px; height: 20px; }
.cp-footer-social-logo svg circle, .cp-footer-social-logo svg path { fill: rgb(10, 102, 194); }
.cp-footer-social-label { font-size: 13px; font-weight: 600; line-height: 1.2; }
.cp-footer-social-arrow { display: flex; align-items: center; justify-content: center; flex: 0 0 auto; width: 26px; height: 26px; background: transparent; color: rgb(255, 255, 255); }
.cp-footer-social-arrow svg { transition: transform 0.2s; }
.cp-footer-linkedin:hover { background: rgb(0, 65, 130); }
.cp-footer-linkedin:hover .cp-footer-social-logo svg circle, .cp-footer-linkedin:hover .cp-footer-social-logo svg path { fill: rgb(0, 65, 130); }
.cp-footer-linkedin:hover .cp-footer-social-arrow svg { transform: translateX(2px); }
.footer-reference .cp-iso-icons { display: flex; flex: 0 0 auto; gap: 8px; align-items: center; flex-wrap: nowrap; }
.cp-iso-badge { display: flex; flex-direction: row; align-items: center; justify-content: center; flex: 0 0 auto; gap: 7px; width: 104px; height: 40px; padding: 6px 10px; border-radius: 10px; background: rgb(48, 53, 54); color: rgb(255, 255, 255); }
.cp-iso-badge > span { font-size: 10px; font-weight: 650; letter-spacing: 0.04em; line-height: 1.2; }
.cp-iso-badge > strong { font-family: var(--font-onest,Onest),Arial,sans-serif; font-size: 17px; font-weight: 600; line-height: 1.2; letter-spacing: var(--cp-heading-tracking); }
@container (max-width: 1000px) {
.footer-reference .cp-footer-links { grid-template-columns: 160px minmax(0px, 1fr); gap: 28px; max-width: 820px; }
.cp-footer-page-columns { gap: 16px; grid-template-columns: 1fr 1fr 1.45fr; }
.footer-reference .cp-footer-products > a { font-size: 22px; }
.footer-reference .cp-footer-bottom { flex-direction: column; align-items: flex-start; gap: 24px; }
.cp-footer-marks { align-self: flex-end; }
}
@container (max-width: 700px) {
.footer-reference .cp-footer-links { grid-template-columns: 1fr; gap: 24px; }
.cp-footer-links .cp-footer-products { display: grid; grid-template-columns: repeat(2, minmax(0px, 1fr)); gap: 0px 16px; width: 100%; align-items: start; }
.cp-footer-products > h3 { grid-column: 1 / -1; margin-bottom: 8px; }
.footer-reference .cp-footer-products > a { font-size: 20px; min-height: 40px; display: flex; align-items: center; }
.cp-footer-page-columns { grid-template-columns: repeat(2, minmax(0px, 1fr)); gap: 24px 20px; }
.cp-footer-page-columns > nav:last-child { grid-column: 1 / -1; }
.cp-footer-page-columns nav { gap: 0px; }
.cp-footer-page-columns h3 { margin: 0px 0px 6px; }
.cp-footer-page-columns :is(a, button) { display: inline-flex; align-items: center; min-height: 36px; text-align: left; }
.footer-reference .cp-footer-bottom { align-items: flex-start; margin-top: 32px; gap: 20px; }
.footer-reference .cp-iso-icons { width: 100%; max-width: 488px; gap: 6px; align-self: flex-start; }
.cp-iso-badge { flex: 1 1 0%; min-width: 0px; width: auto; max-width: none; height: 40px; padding: 4px; gap: 4px; }
.cp-iso-badge > span { font-size: 9px; }
.cp-iso-badge > strong { font-size: 14px; }
.footer-reference .cp-footer-linkedin { width: 118px; gap: 6px; padding: 6px; }
.cp-footer-social-logo, .cp-footer-social-arrow { width: 24px; height: 24px; }
.cp-footer-social-label { font-size: 12px; }
}
@container (max-width: 375px) {
.footer-reference .cp-footer-linkedin { width: 58px; gap: 6px; }
.cp-footer-linkedin .cp-footer-social-label { display: none; }
.cp-footer-social-logo, .cp-footer-social-arrow { width: 20px; height: 24px; }
.cp-iso-badge > strong { font-size: 13px; }
}
@container (max-width: 350px) {
.footer-reference .cp-footer-products > a { font-size: 18px; }
}
@media (prefers-reduced-motion: reduce) {
.cp-footer-social-arrow svg, .cp-footer-social-arrow { transition: none; }
.cp-footer-linkedin:hover .cp-footer-social-arrow svg { transform: none; }
}
.footer-reference .cp-brochure-download .cp-direction-marker { background: rgb(238, 153, 78); color: rgb(32, 33, 31); }
.cp-news-archive-grid .cp-direction-marker { align-self: center; flex: 0 0 auto; }
@container (max-width: 1100px) {
.cp-news-archive-grid .cp-direction-marker { display: none; }
}
.cp-discovery-hero > .cp-wrap { padding: 54px 0px 158px; }
.cp-discovery-page main > .cp-wrap { width: calc(100% - 136px); max-width: 1600px; }
@media (max-width: 1000px) {
.cp-discovery-page main > .cp-wrap { width: calc(100% - 88px); }
}
@media (max-width: 700px) {
.cp-discovery-page main > .cp-wrap { width: calc(100% - 56px); }
.cp-discovery-hero > .cp-wrap { width: calc(100% - 40px); padding-block: 32px 142px; }
.cp-discovery-flow > .cp-wrap { width: calc(100% - 40px); }
}
.footer-reference .cp-footer-social-logo svg { stroke: none; fill: currentcolor; }
.footer-reference .cp-footer-about h2 { margin-bottom: 22px; }
.footer-reference .cp-footer-about p { max-width: 750px; }
.footer-reference .cp-footer-links h3 { margin-bottom: 10px; }
@media (max-width: 767px) {
.footer-reference .cp-footer-links h3 { margin-bottom: 6px; }
}
.footer-reference .cp-footer-linkedin:hover .cp-footer-social-arrow svg { transform: translateX(2px); }
.footer-reference .cp-footer-about h2 { margin-bottom: var(--heading-gap); }
.updates-author-linkedin .cp-footer-social-logo { width: 18px; height: 18px; }
.updates-author-linkedin .cp-footer-social-logo svg { width: 18px; height: 18px; }
.updates-author-linkedin .cp-footer-social-logo svg :is(circle, path) { fill: var(--author-blue); stroke: none; }

.footer-reference { font-weight:400; }
.footer-reference .cp-footer-about h2 { font-weight:600;letter-spacing:-.02em;line-height:1.1; }
.footer-reference .cp-footer-about p { font-size:17px;line-height:1.5;font-weight:400; }
.footer-reference .cp-footer-about .cp-wayfinding-button.cp-button {
  gap:16px;min-height:54px;max-width:100%;padding:7px 7px 7px 18px;
  border:0;border-radius:16px;background:#000;color:#fff !important;
  font-size:15px !important;
}
