@font-face {
    font-family:Brand;
    src:url("/reference/fonts/regular.woff2") format("woff2");
    font-style:normal;
    font-weight:400;
    font-display:swap
}

@font-face {
    font-family:Brand;
    src:url("/reference/fonts/semibold.woff2") format("woff2");
    font-style:normal;
    font-weight:600;
    font-display:swap
}

@font-face {
    font-family:Brand;
    src:url("/reference/fonts/bold.woff2") format("woff2");
    font-style:normal;
    font-weight:700;
    font-display:swap
}

:root {
    --ink:#10252d;
    --muted:#5a6970;
    --red:#b63636;
    --red-dark:#942a2a;
    --paper:#f5f5f0;
    --line:#dce1df;
    --white:#fff;
    --heading:Brand,Arial,sans-serif
}

* {
    box-sizing:border-box
}

html {
    scroll-behavior:smooth;
    scroll-padding-top:110px
}

body {
    margin:0;
    color:var(--ink);
    background:var(--white);
    font:16px/1.7 -apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
    -webkit-font-smoothing:antialiased
}

body.nav-open {
    overflow:hidden
}

h1,h2,h3,h4 {
    font-family:var(--heading);
    font-weight:400;
    line-height:1.16;
    letter-spacing:-.045em;
    margin:0 0 20px
}

h1 {
    font-size:clamp(38px,4vw,60px)
}

h2 {
    font-size:clamp(32px,3.2vw,48px)
}

h3 {
    font-size:24px;
    letter-spacing:-.035em
}

p {
    margin:0 0 22px;
    color:var(--muted)
}

a {
    color:inherit;
    text-decoration:none
}

button,input,textarea,select {
    font:inherit
}

button {
    cursor:pointer
}

button,a,input,select,textarea {
    -webkit-tap-highlight-color:transparent
}

img {
    display:block;
    max-width:100%;
    height:auto
}

svg {
    display:inline-block
}

button {
    color:inherit
}

address {
    font-style:normal
}

::selection {
    background:#efd9d5;
    color:var(--ink)
}

:focus-visible {
    outline:3px solid #d7977c;
    outline-offset:5px
}

[hidden] {
    display:none!important
}

.container {
    width:min(1248px,calc(100% - 96px));
    margin-inline:auto
}

.reading-width {
    max-width:880px
}

.section {
    padding-block:104px
}

.section-tinted {
    background:var(--paper)
}

.icon {
    width:22px;
    height:22px;
    flex-shrink:0;
    vertical-align:middle;
    stroke-linecap:round;
    stroke-linejoin:round
}

.eyebrow {
    display:block;
    color:var(--red);
    font-family:var(--heading);
    font-size:10px;
    font-weight:600;
    letter-spacing:.17em;
    text-transform:uppercase;
    line-height:1.7;
    margin-bottom:22px
}

.lead {
    font-size:18px;
    line-height:1.8
}

.sr-only,.skip-link {
    position:absolute;
    width:1px;
    height:1px;
    overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap
}

.skip-link:focus {
    position:fixed;
    top:12px;
    left:12px;
    z-index:300;
    width:auto;
    height:auto;
    clip:auto;
    background:white;
    padding:12px 20px
}

.button {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:20px;
    min-height:52px;
    padding:13px 22px;
    border:1px solid transparent;
    font-size:13px;
    font-weight:600;
    line-height:1.5;
    letter-spacing:.01em;
    transition:background .2s,color .2s,transform .2s;
    border-radius:2px
}

.button .icon {
    width:19px;
    height:19px
}

.button-primary {
    background:var(--red);
    color:#fff
}

.button-primary:hover {
    background:var(--red-dark)
}

.button-outline {
    border-color:#aeb8b8;
    background:transparent;
    color:var(--ink)
}

.button-outline:hover {
    background:var(--ink);
    border-color:var(--ink);
    color:white
}

.button-light {
    background:white;
    color:var(--ink)
}

.button-light:hover {
    background:#edece5
}

.button-ghost {
    color:white;
    border-color:rgba(255,255,255,.35);
    background:transparent
}

.button-ghost:hover {
    background:rgba(255,255,255,.1)
}

.button-row {
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    margin-top:32px
}

.text-link {
    display:inline-flex;
    align-items:center;
    gap:20px;
    color:var(--ink);
    font-size:13px;
    font-weight:600;
    background:none;
    border:0;
    border-bottom:1px solid currentColor;
    padding:0 0 7px;
    line-height:1.6
}

.text-link:hover {
    color:var(--red)
}

.text-link .icon {
    width:18px;
    height:18px
}

.icon-button {
    border:0;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    background:none;
    width:42px;
    height:42px;
    border-radius:2px
}

.icon-button:hover {
    background:var(--paper)
}

.section-heading {
    display:flex;
    align-items:end;
    justify-content:space-between;
    gap:64px;
    margin-bottom:48px
}

.section-heading>div:first-child {
    flex:1
}

.section-heading>p,.section-heading>div:last-child:not(:first-child) {
    max-width:370px
}

.section-heading h2 {
    margin-bottom:0
}

.section-heading .text-link {
    margin-top:8px
}

.section-heading p {
    margin-bottom:10px
}

.utility-bar {
    background:var(--ink);
    color:#dae0df;
    font-size:10px;
    letter-spacing:.06em
}

.utility-inner {
    display:flex;
    align-items:center;
    justify-content:space-between;
    min-height:34px
}

.utility-inner a {
    display:flex;
    align-items:center;
    gap:15px
}

.utility-inner .icon {
    width:13px;
    height:13px
}

.site-header {
    background:#fff;
    position:sticky;
    top:0;
    z-index:100;
    border-bottom:1px solid #e7ebe8;
    transition:box-shadow .2s
}

.site-header.is-scrolled {
    box-shadow:0 7px 30px #10252d0a
}

.header-inner {
    height:96px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:28px
}

.brand {
    flex-shrink:0;
    width:245px
}

.brand img {
    width:100%;
    height:auto;
    max-height:64px;
    object-fit:contain
}

.main-nav {
    display:flex;
    align-items:center;
    gap:23px;
    font-size:12px;
    font-weight:500
}

.nav-group {
    position:relative
}

.nav-item {
    display:flex;
    align-items:center;
    gap:2px
}

.nav-item>a {
    padding-block:30px
}

.nav-item>a[aria-current],.nav-direct:hover {
    color:var(--red)
}

.submenu-toggle {
    display:flex;
    align-items:center;
    justify-content:center;
    width:20px;
    height:35px;
    padding:0;
    border:0;
    background:none
}

.submenu-toggle .icon {
    width:11px;
    height:11px
}

.nav-dropdown {
    position:absolute;
    top:calc(100% + 8px);
    left:-24px;
    width:340px;
    background:white;
    box-shadow:0 16px 50px #10252d20;
    border-top:3px solid var(--red);
    padding:24px;
    z-index:110
}

.nav-dropdown .eyebrow {
    margin-bottom:12px
}

.nav-dropdown>a {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    line-height:1.5;
    font-size:13px;
    padding-block:12px;
    border-bottom:1px solid var(--line)
}

.nav-dropdown>a:last-child {
    border-bottom:0
}

.nav-dropdown>a:hover {
    color:var(--red)
}

.nav-dropdown .icon {
    width:16px;
    height:16px
}

.header-cta {
    min-height:44px;
    padding:11px 18px;
    gap:16px;
    font-size:12px
}

.main-nav>.icon-button {
    width:26px
}

.menu-toggle {
    display:none
}

.header-search {
    background:var(--paper);
    border-top:1px solid var(--line)
}

.search-bar {
    display:flex;
    gap:12px;
    align-items:center;
    padding-block:20px
}

.search-bar input {
    flex:1;
    min-width:0;
    padding:13px 18px;
    border:1px solid var(--line);
    background:white;
    min-height:52px
}

.search-bar .icon-button {
    flex-shrink:0
}

.home-hero {
    position:relative;
    background:var(--ink);
    color:white;
    isolation:isolate
}

.home-hero-image {
    position:absolute;
    width:100%;
    height:calc(100% - 82px);
    top:0;
    right:0;
    object-fit:cover;
    object-position:center 38%;
    z-index:-2
}

.home-hero::before {
    content:"";
    position:absolute;
    inset:0 0 82px;
    background:linear-gradient(90deg,rgba(9,29,39,.97) 0%,rgba(9,29,39,.88) 32%,rgba(9,29,39,.44) 60%,rgba(9,29,39,.04) 100%);
    z-index:-1
}

.home-hero-inner {
    padding-top:100px;
    padding-bottom:36px;
    min-height:652px;
    position:relative
}

.hero-label {
    display:flex;
    gap:14px;
    align-items:center;
    color:#e1e6e1;
    font-family:var(--heading);
    font-size:10px;
    letter-spacing:.16em;
    text-transform:uppercase;
    margin-bottom:28px
}

.accent-line {
    width:36px;
    height:2px;
    background:#d44f45
}

.home-hero h1 {
    font-size:clamp(48px,5vw,76px);
    line-height:1.13;
    letter-spacing:-.055em;
    max-width:820px;
    margin-bottom:28px
}

.home-hero h1 span {
    color:#d7e1dc
}

.home-hero p {
    color:#c4cecf;
    font-size:17px;
    line-height:1.8;
    max-width:620px
}

.home-hero .button-row {
    margin-top:32px
}

.hero-scroll {
    display:flex;
    align-items:center;
    gap:20px;
    margin-top:60px;
    width:max-content;
    font-size:10px;
    text-transform:uppercase;
    letter-spacing:.12em;
    color:#c8d2d1
}

.hero-scroll span {
    font-size:20px
}

.hero-priorities {
    background:#10252d;
    min-height:82px;
    border-top:1px solid #ffffff20
}

.priorities-inner {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    min-height:82px
}

.priorities-inner>div {
    display:flex;
    align-items:center;
    justify-content:center;
    gap:16px;
    color:#e4e8e4;
    font-size:12px;
    border-right:1px solid #ffffff1a
}

.priorities-inner>div:first-child {
    justify-content:flex-start
}

.priorities-inner>div:last-child {
    border:0
}

.priorities-inner span {
    font-size:10px;
    color:#b6a093
}

.section-portfolio {
    background:#fafaf7
}

.portfolio-feature {
    display:grid;
    grid-template-columns:1fr 1.08fr;
    gap:64px
}

.portfolio-spotlight {
    display:block;
    position:relative;
    min-height:470px;
    overflow:hidden;
    background:var(--ink);
    color:white
}

.portfolio-spotlight>img {
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .6s
}

.portfolio-spotlight:after {
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(0deg,#10252de6,#10252d30)
}

.portfolio-spotlight:hover>img {
    transform:scale(1.035)
}

.portfolio-spotlight>div {
    position:absolute;
    z-index:1;
    inset:auto 40px 38px
}

.portfolio-spotlight .eyebrow {
    color:#e0d2c5;
    margin-bottom:16px
}

.portfolio-spotlight h3 {
    font-size:43px;
    line-height:1.1;
    margin-bottom:16px
}

.portfolio-spotlight p {
    color:#e1e6e4;
    max-width:300px;
    font-size:14px;
    margin-bottom:0
}

.circle-arrow {
    position:absolute;
    bottom:0;
    right:0;
    width:46px;
    height:46px;
    display:grid;
    place-items:center;
    border:1px solid #ffffff60;
    border-radius:50%
}

.portfolio-rows>a {
    display:flex;
    align-items:center;
    gap:24px;
    min-height:117px;
    border-bottom:1px solid #cfd5d0
}

.portfolio-rows>a:first-child {
    border-top:1px solid #cfd5d0
}

.portfolio-rows h3 {
    font-size:23px;
    margin-bottom:7px
}

.portfolio-rows p {
    font-size:13px;
    margin-bottom:0
}

.row-number {
    align-self:flex-start;
    margin-top:35px;
    font-size:11px;
    color:var(--red)
}

.portfolio-rows>a>div {
    flex:1
}

.portfolio-rows>a>.icon {
    width:20px
}

.portfolio-rows>a:hover h3 {
    color:var(--red)
}

.expertise-section {
    background:#edf0ec
}

.expertise-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:96px;
    align-items:center
}

.expertise-photo {
    position:relative;
    min-height:570px
}

.expertise-photo>img {
    width:100%;
    height:500px;
    object-fit:cover
}

.photo-note {
    position:absolute;
    bottom:0;
    right:-24px;
    background:var(--ink);
    color:white;
    padding:28px 36px;
    min-width:290px;
    border-bottom:3px solid var(--red)
}

.photo-note .eyebrow {
    color:#c9b2a4;
    margin-bottom:15px
}

.photo-note p {
    font-family:var(--heading);
    font-size:24px;
    line-height:1.35;
    color:white;
    letter-spacing:-.035em;
    margin-bottom:0
}

.expertise-copy .lead {
    margin-top:26px
}

.expertise-copy>p:not(.lead) {
    font-size:15px
}

.check-list {
    list-style:none;
    padding:0;
    margin:30px 0
}

.check-list li {
    display:flex;
    align-items:center;
    gap:16px;
    padding-block:11px;
    font-size:13px;
    border-bottom:1px solid #d3dad4
}

.check-list .icon {
    color:var(--red);
    width:17px;
    height:17px
}

.cards-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:28px
}

.portfolio-card {
    background:white;
    border:1px solid var(--line);
    display:flex;
    flex-direction:column;
    transition:border-color .2s,box-shadow .2s;
    min-width:0
}

.portfolio-card:hover {
    border-color:#8eaaa3;
    box-shadow:0 14px 28px #10252d07
}

.portfolio-card-text .card-body {
    min-height: 310px;
    border-top: 2px solid var(--red);
}

.card-image {
    aspect-ratio:1.65;
    overflow:hidden;
    background:var(--paper)
}

.card-image img {
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .6s
}

.portfolio-card:hover img {
    transform:scale(1.035)
}

.card-body {
    padding:28px;
    display:flex;
    flex-direction:column;
    align-items:start;
    flex:1
}

.card-eyebrow {
    font-size:9px;
    text-transform:uppercase;
    letter-spacing:.13em;
    color:var(--red);
    margin-bottom:14px
}

.card-body h3 {
    font-size:24px;
    line-height:1.3;
    margin-bottom:14px
}

.card-body p {
    font-size:14px;
    line-height:1.8;
    display:-webkit-box;
    -webkit-line-clamp:3;
    -webkit-box-orient:vertical;
    overflow:hidden;
    margin-bottom:28px
}

.card-action {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:30px;
    width:100%;
    font-size:12px;
    font-weight:600;
    margin-top:auto;
    padding-top:20px;
    border-top:1px solid var(--line)
}

.card-action .icon {
    width:18px;
    height:18px
}

.process-section {
    background:var(--paper)
}

.process-section>div>h2 {
    max-width:600px
}

.process-grid,.principles-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:55px;
    margin-top:48px
}

.process-grid article,.principles-grid article {
    border-top:1px solid #c8d1cc;
    padding-top:26px
}

.process-number {
    display:block;
    color:var(--red);
    font-size:12px;
    margin-bottom:30px
}

.process-grid h3,.principles-grid h3 {
    font-size:24px
}

.process-grid p,.principles-grid p {
    font-size:15px
}

.conversation {
    background:var(--red);
    color:white;
    padding-block:76px;
    position:relative;
    overflow:hidden
}

.conversation:after {
    content:"";
    width:440px;
    height:440px;
    position:absolute;
    border:1px solid #ffffff18;
    transform:rotate(45deg);
    top:-240px;
    right:14%;
    pointer-events:none
}

.conversation-inner {
    display:grid;
    grid-template-columns:1.3fr 1fr;
    gap:120px;
    align-items:center
}

.conversation .eyebrow {
    color:#ecd4ca;
    margin-bottom:18px
}

.conversation h2 {
    font-size:40px;
    margin-bottom:0
}

.conversation p {
    color:#f1d8d2;
    font-size:15px;
    max-width:390px
}

.conversation .button {
    margin-top:4px
}

.page-hero {
    background:var(--paper);
    padding-bottom:70px;
    border-bottom:1px solid var(--line)
}

.breadcrumbs {
    padding-block:24px;
    display:flex;
    gap:12px;
    align-items:center;
    flex-wrap:wrap;
    font-size:10px;
    color:#738078;
    margin-bottom:30px;
    line-height:1.7
}

.breadcrumbs>a {
    color:#43534e
}

.breadcrumbs>span[aria-current] {
    max-width:600px
}

.page-hero-grid {
    display:grid;
    grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);
    gap:80px;
    align-items:center
}

.page-hero-grid:not(:has(.page-hero-image)) {
    display:block;
    max-width:930px
}

.page-hero-copy h1 {
    line-height:1.13
}

.page-hero-copy>.eyebrow {
    margin-bottom:24px
}

.page-hero-copy .lead {
    font-size:16px;
    line-height:1.9;
    margin-top:25px;
    max-width:780px
}

.page-hero-image {
    position:relative;
    aspect-ratio:1.17;
    overflow:hidden;
    background:var(--ink)
}

.page-hero-image img {
    width:100%;
    height:100%;
    object-fit:cover
}

.image-caption {
    position:absolute;
    bottom:0;
    left:0;
    right:0;
    background:#10252de8;
    color:#e5ebe5;
    padding:16px 22px;
    font-size:10px;
    letter-spacing:.06em
}

.page-hero-product .page-hero-copy h1 {
    font-size:clamp(36px,3.9vw,57px)
}

.specifications {
    margin-top:76px;
    padding-top:64px;
    border-top:1px solid var(--line)
}

.specifications>div:first-child>p {
    max-width:720px
}

.specifications h2 {
    font-size:34px
}

.specification-table {
    overflow-x:auto;
    max-width:100%;
    margin-top:32px
}

.specification-table table {
    border-collapse:collapse!important;
    min-width:600px;
    width:100%!important;
    background:white;
    margin:0!important;
    font-size:13px;
    line-height:1.7
}

.specification-table th,.specification-table td {
    border:1px solid var(--line)!important;
    padding:16px!important;
    text-align:left!important;
    width:auto!important;
    vertical-align:top
}

.specification-table th,.specification-table thead {
    background:#eef1ed!important;
    color:var(--ink)!important;
    font-weight:600
}

.specification-table p {
    margin:0;
    font-size:13px;
    color:var(--ink)
}

.specification-table td:first-child {
    font-weight:600
}

.document-row {
    display:flex;
    gap:24px;
    align-items:center;
    padding:24px 0;
    border-bottom:1px solid #ccd5ce
}

.document-row>.icon {
    color:var(--red);
    width:26px;
    height:26px
}

.document-row>div {
    flex:1;
    min-width:0
}

.document-row h3 {
    font-size:17px;
    letter-spacing:-.02em;
    margin-bottom:6px;
    line-height:1.5
}

.document-row span {
    font-size:12px;
    color:var(--muted)
}

.document-row .button {
    font-size:12px;
    flex-shrink:0
}

.document-status h1 {
    max-width:820px
}

.document-status .lead {
    font-size:24px
}

.contact-section {
    padding-block:96px
}

.contact-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:120px
}

.contact-details>p {
    max-width:460px
}

.contact-details h2 {
    font-size:44px
}

.contact-method {
    display:flex;
    gap:22px;
    padding-block:22px;
    border-bottom:1px solid var(--line)
}

.contact-method>.icon {
    color:var(--red);
    width:22px;
    margin-top:4px
}

.contact-method span {
    display:block;
    font-size:10px;
    color:var(--muted);
    text-transform:uppercase;
    letter-spacing:.1em;
    margin-bottom:5px
}

.contact-method a,.contact-method address {
    font-size:15px;
    overflow-wrap:anywhere
}

.contact-method a:hover {
    color:var(--red)
}

.enquiry-panel {
    background:var(--paper);
    padding:44px
}

.enquiry-panel h3 {
    font-size:42px
}

.enquiry-panel>p {
    font-size:15px
}

.enquiry-panel ol {
    padding:0;
    list-style:none;
    margin:28px 0
}

.enquiry-panel li {
    display:flex;
    gap:18px;
    align-items:start;
    padding-block:15px;
    border-bottom:1px solid #d8ddd6;
    font-size:14px
}

.enquiry-panel li span {
    font-size:10px;
    color:var(--red);
    padding-top:3px
}

.enquiry-panel>.text-link {
    margin-top:22px
}

.location-section {
    background:#f7f7f3;
    border-top:1px solid var(--line)
}

.map-frame {
    height:440px;
    background:#e6ece5;
    border:1px solid #d4dbd2
}

.map-frame iframe {
    width:100%;
    height:100%;
    border:0;
    display:block;
    max-width:100%
}

.map-caption {
    margin:18px 0 0;
    font-size:11px;
    color:var(--muted)
}

.interest-note {
    border-left:2px solid var(--red);
    padding:12px 16px;
    background:var(--paper);
    font-size:13px
}

.form-layout {
    display:grid;
    grid-template-columns:.8fr 1.3fr;
    gap:100px;
    align-items:start
}

.form-layout aside h2 {
    font-size:38px
}

.form-layout aside>p {
    font-size:15px
}

.form-preview-note {
    background:var(--paper);
    padding:24px;
    border-left:2px solid var(--red);
    margin-top:32px;
    font-size:13px
}

.form-preview-note p {
    margin-top:8px;
    margin-bottom:0
}

.form-preview-note a {
    text-decoration:underline
}

.enquiry-form {
    border:1px solid var(--line);
    padding:40px
}

.enquiry-form>h2 {
    font-size:26px;
    margin-bottom:30px
}

.form-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:22px
}

.form-grid .full-width {
    grid-column:1/-1
}

label {
    display:block;
    font-size:12px;
    color:var(--ink);
    font-weight:600;
    margin-bottom:9px
}

label span {
    color:var(--red)
}

input,textarea,select {
    border:1px solid #cbd3cf;
    background:white;
    color:var(--ink);
    padding:13px 14px;
    width:100%;
    border-radius:1px;
    min-height:50px;
    box-shadow:none;
    font-size:14px
}

textarea {
    resize:vertical;
    min-height:140px
}

input::placeholder,textarea::placeholder {
    color:#8a9490
}

.form-required {
    font-size:11px;
    margin-top:24px
}

.notice {
    padding:20px 24px;
    border-left:3px solid var(--red);
    background:#f4ede5;
    margin-block:20px;
    font-size:14px
}

.availability-banner {
    display:flex;
    align-items:center;
    gap:22px;
    padding:26px;
    background:#f3f0e8;
    border-left:3px solid #a18b65;
    margin-bottom:44px
}

.availability-banner>.icon {
    width:26px;
    height:26px;
    color:#8a7553;
    flex-shrink:0
}

.availability-banner>div {
    flex:1
}

.availability-banner strong {
    font-size:14px;
    font-weight:600
}

.availability-banner p {
    font-size:13px;
    margin:5px 0 0;
    line-height:1.7
}

.availability-banner .text-link {
    font-size:12px;
    flex-shrink:0
}

.resource-filter {
    display:grid;
    grid-template-columns:1.4fr 1fr auto;
    gap:20px;
    align-items:end;
    background:var(--paper);
    padding:28px;
    margin-bottom:30px
}

.resource-filter label {
    font-size:11px
}

.resource-results-summary {
    display:flex;
    justify-content:space-between;
    font-size:12px;
    color:var(--muted);
    margin-bottom:24px
}

.resource-results-summary a {
    color:var(--red);
    text-decoration:underline
}

.resource-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:24px
}

.resource-card {
    border:1px solid var(--line);
    padding:28px;
    display:flex;
    flex-direction:column;
    align-items:start;
    min-height:290px
}

.resource-card-top {
    display:flex;
    align-items:center;
    gap:12px;
    color:#75847b;
    margin-bottom:25px
}

.resource-card-top .icon {
    color:var(--red);
    width:23px;
    height:23px
}

.resource-card-top>span {
    font-size:10px;
    letter-spacing:.03em
}

.resource-card h2 {
    font-size:21px;
    line-height:1.4;
    letter-spacing:-.025em;
    margin-bottom:26px
}

.availability-label {
    display:flex;
    gap:8px;
    align-items:center;
    font-size:10px;
    color:#8a7553;
    margin-top:auto;
    margin-bottom:20px
}

.availability-label>span {
    width:5px;
    height:5px;
    background:#a18b65;
    border-radius:50%
}

.resource-card>.text-link {
    font-size:11px
}

.pagination {
    display:flex;
    justify-content:center;
    align-items:center;
    gap:8px;
    margin-top:48px;
    flex-wrap:wrap;
    font-size:12px
}

.pagination a,.pagination>span {
    min-width:40px;
    min-height:40px;
    display:grid;
    place-items:center;
    padding:8px 12px;
    border:1px solid var(--line)
}

.pagination a[aria-current] {
    background:var(--ink);
    color:white;
    border-color:var(--ink)
}

.pagination>span {
    color:#9aa39e;
    border-color:transparent
}

.pagination a:hover {
    border-color:var(--ink)
}

.document-dialog {
    border:0;
    border-radius:3px;
    padding:0;
    width:min(570px,calc(100% - 32px));
    color:var(--ink);
    max-height:calc(100svh - 50px);
    overflow:auto;
    box-shadow:0 25px 80px #061f3140
}

.document-dialog::backdrop {
    background:#0d222acc;
    backdrop-filter:blur(5px)
}

.dialog-content {
    padding:48px;
    position:relative
}

.dialog-content>.icon-button {
    position:absolute;
    right:12px;
    top:12px
}

.dialog-icon {
    display:grid;
    place-items:center;
    width:60px;
    height:60px;
    background:var(--paper);
    color:var(--red);
    margin-bottom:28px
}

.dialog-icon>.icon {
    width:28px;
    height:28px
}

.dialog-content h2 {
    font-size:32px;
    margin-bottom:20px
}

.dialog-content p {
    font-size:14px
}

.dialog-document-name {
    font-weight:600;
    color:var(--ink);
    padding-bottom:18px;
    border-bottom:1px solid var(--line)
}

.dialog-content>.button {
    margin-top:10px
}

.dialog-content>.text-link {
    display:flex;
    width:max-content;
    margin-top:24px;
    font-size:12px
}

.page-search {
    background:var(--paper);
    padding:24px;
    margin-bottom:50px
}

.results-count {
    font-size:13px;
    color:var(--muted);
    margin-bottom:30px
}

.search-result {
    padding:26px 0;
    border-bottom:1px solid var(--line)
}

.search-result h2 {
    font-size:24px;
    line-height:1.4;
    letter-spacing:-.025em
}

.search-result h2 a {
    display:flex;
    gap:24px;
    align-items:center;
    justify-content:space-between
}

.search-result h2 a:hover {
    color:var(--red)
}

.search-result p {
    font-size:15px;
    margin-bottom:0
}

.empty-state {
    padding:36px;
    background:var(--paper);
    grid-column:1/-1
}

.empty-state h2 {
    font-size:26px
}

.empty-state p {
    font-size:14px
}

.filter-tabs {
    display:flex;
    gap:15px;
    margin-bottom:40px;
    flex-wrap:wrap
}

.filter-tabs a {
    padding:10px 18px;
    font-size:12px;
    border:1px solid var(--line)
}

.filter-tabs a[aria-current] {
    background:var(--ink);
    color:white;
    border-color:var(--ink)
}

.article-grid {
    display:grid;
    grid-template-columns:270px 1fr;
    gap:95px
}

.article-grid aside {
    position:sticky;
    top:130px;
    align-self:start
}

.article-grid aside>a:not(.text-link) {
    display:block;
    font-size:13px;
    padding:14px 0;
    border-bottom:1px solid var(--line);
    line-height:1.6
}

.article-grid aside>.text-link {
    margin-top:30px
}

.article-body section {
    margin-bottom:48px;
    scroll-margin-top:130px
}

.article-body h2 {
    font-size:32px
}

.article-body p {
    font-size:17px;
    line-height:1.95
}

.article-note {
    border-left:2px solid var(--red);
    padding:22px;
    background:var(--paper);
    font-size:13px;
    color:var(--muted)
}

.legal-copy {
    font-size:15px;
    overflow-wrap:anywhere
}

.legal-copy h1 {
    font-size:28px
}

.legal-copy h2 {
    font-size:26px;
    margin-top:35px
}

.legal-copy h3 {
    font-size:21px
}

.legal-copy .c-breadcrumb,.legal-copy .c-headline {
    display:none
}

.legal-copy a {
    text-decoration:underline;
    color:var(--red)
}

.legal-copy table {
    width:100%;
    border-collapse:collapse;
    font-size:13px
}

.legal-copy td {
    padding:12px;
    border:1px solid var(--line)
}

.site-footer {
    background:#10252d;
    color:#e0e6e1;
    padding-top:72px
}

.footer-grid {
    display:grid;
    grid-template-columns:1.65fr .8fr .8fr 1.1fr;
    gap:56px;
    padding-bottom:64px
}

.footer-brand img {
    width:250px;
    filter:brightness(0) invert(1);
    height:auto;
    margin-top:-8px;
    margin-bottom:26px
}

.footer-brand>p {
    font-family:var(--heading);
    font-size:19px;
    line-height:1.6;
    color:#b6c4c0;
    letter-spacing:-.02em
}

.footer-email {
    font-size:11px!important;
    overflow-wrap:anywhere
}

.footer-grid h2 {
    font-family:inherit;
    font-size:10px;
    font-weight:600;
    letter-spacing:.13em;
    text-transform:uppercase;
    margin-bottom:25px;
    color:#b5a294
}

.footer-grid>div>a:not(.text-link) {
    display:block;
    font-size:12px;
    margin-bottom:13px;
    color:#d5ded8
}

.footer-grid>div>a:hover {
    color:white
}

.footer-location address {
    font-size:12px;
    line-height:1.9;
    margin-bottom:18px;
    color:#bcc9c4
}

.footer-location .text-link {
    color:#e2e7e2;
    font-size:11px;
    margin-top:8px
}

.footer-bottom {
    padding-block:24px;
    border-top:1px solid #ffffff1a;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px
}

.footer-bottom p {
    font-size:10px;
    color:#98aaa2;
    margin-bottom:0
}

.footer-bottom nav {
    display:flex;
    gap:24px;
    font-size:10px;
    color:#aebeb6
}

@media(min-width:1500px) {
    .container {
        max-width:1320px
    }

    .home-hero-inner {
        min-height:720px;
        padding-top:125px
    }

    .home-hero h1 {
        font-size:84px
    }

    .header-inner {
        height:104px
    }

}

@media(max-width:1250px) {
    .main-nav {
        gap:15px;
        font-size:11px
    }

    .brand {
        width:220px
    }

    .header-cta {
        padding:10px 14px
    }

    .portfolio-feature {
        gap:40px
    }

    .expertise-grid {
        gap:65px
    }

    .contact-grid {
        gap:75px
    }

    .page-hero-grid {
        gap:50px
    }

    .footer-grid {
        gap:35px
    }

    .conversation-inner {
        gap:60px
    }

}

@media(max-width:1100px) {
    .container {
        width:calc(100% - 64px)
    }

    .header-inner {
        height:84px
    }

    .menu-toggle {
        display:inline-flex
    }

    .main-nav {
        display:none;
        position:absolute;
        top:100%;
        left:0;
        right:0;
        background:white;
        border-bottom:1px solid var(--line);
        padding:16px 32px 28px;
        max-height:calc(100svh - 120px);
        overflow:auto;
        box-shadow:0 24px 35px #10252d12
    }

    .main-nav.is-open {
        display:flex;
        flex-direction:column;
        align-items:stretch;
        gap:0
    }

    .nav-group {
        border-bottom:1px solid var(--line)
    }

    .nav-item {
        justify-content:space-between
    }

    .nav-item>a {
        padding:16px 0;
        flex:1;
        font-size:14px
    }

    .submenu-toggle {
        width:45px;
        min-height:45px
    }

    .submenu-toggle .icon {
        width:17px;
        height:17px
    }

    .nav-direct {
        font-size:14px;
        padding:16px 0;
        border-bottom:1px solid var(--line)
    }

    .nav-dropdown {
        position:static;
        width:100%;
        border:0;
        box-shadow:none;
        background:var(--paper);
        padding:16px 22px;
        margin-bottom:14px
    }

    .main-nav>.icon-button {
        width:100%;
        min-height:46px;
        justify-content:flex-start;
        margin-top:12px
    }

    .header-cta {
        margin-top:10px;
        min-height:48px;
        width:max-content
    }

    .home-hero h1 {
        font-size:64px
    }

    .home-hero-inner {
        min-height:610px;
        padding-top:88px
    }

    .hero-scroll {
        margin-top:46px
    }

    .cards-grid {
        gap:20px
    }

    .card-body {
        padding:22px
    }

    .card-body h3 {
        font-size:21px
    }

    .portfolio-spotlight>div {
        inset:auto 28px 30px
    }

    .portfolio-rows h3 {
        font-size:20px
    }

    .portfolio-rows p {
        font-size:12px
    }

    .row-number {
        display:none
    }

    .expertise-photo {
        min-height:500px
    }

    .expertise-photo>img {
        height:440px
    }

    .photo-note {
        right:-15px;
        min-width:260px;
        padding:24px
    }

    .expertise-grid {
        gap:55px
    }

    .section {
        padding-block:80px
    }

    .section-heading {
        gap:40px
    }

    .page-hero-grid {
        gap:40px
    }

    .page-hero h1 {
        font-size:43px
    }

    .contact-grid {
        gap:50px
    }

    .enquiry-panel {
        padding:32px
    }

    .contact-method a {
        font-size:13px
    }

    .form-layout {
        gap:50px;
        grid-template-columns:.8fr 1.2fr
    }

    .enquiry-form {
        padding:28px
    }

    .resource-filter {
        grid-template-columns:1fr 1fr
    }

    .resource-filter .button {
        grid-column:1/-1;
        width:max-content
    }

    .footer-grid {
        grid-template-columns:1.4fr 1fr 1fr;
        gap:35px
    }

    .footer-location {
        grid-column:1/-1;
        display:flex;
        gap:30px;
        align-items:start;
        flex-wrap:wrap
    }

    .footer-location h2 {
        min-width:110px
    }

    .footer-location address {
        margin-bottom:0
    }

    .footer-location .text-link {
        margin-top:0
    }

    .article-grid {
        gap:50px;
        grid-template-columns:220px 1fr
    }

}

@media(max-width:800px) {
    .container {
        width:calc(100% - 48px)
    }

    .home-hero h1 {
        font-size:54px
    }

    .home-hero::before {
        background:linear-gradient(90deg,#091d27f0,#091d27c9 50%,#091d2780)
    }

    .home-hero-inner {
        padding-top:70px;
        min-height:580px
    }

    .home-hero p {
        font-size:16px;
        max-width:500px
    }

    .priorities-inner>div {
        font-size:10px;
        gap:8px;
        text-align:center;
        padding-inline:12px
    }

    .priorities-inner>div:first-child {
        justify-content:center
    }

    .portfolio-feature {
        grid-template-columns:1fr 1fr;
        gap:24px
    }

    .portfolio-spotlight {
        min-height:440px
    }

    .portfolio-spotlight h3 {
        font-size:35px
    }

    .portfolio-spotlight p {
        font-size:12px;
        max-width:190px
    }

    .circle-arrow {
        width:32px;
        height:32px
    }

    .portfolio-rows>a {
        min-height:110px;
        gap:12px
    }

    .portfolio-rows h3 {
        font-size:18px
    }

    .portfolio-rows>a>.icon {
        width:16px
    }

    .section-heading {
        align-items:start;
        gap:25px
    }

    .section-heading>p,.section-heading>div:last-child:not(:first-child) {
        max-width:260px;
        font-size:14px
    }

    .expertise-grid {
        gap:40px
    }

    .expertise-copy h2 {
        font-size:36px
    }

    .expertise-photo {
        min-height:450px
    }

    .expertise-photo>img {
        height:390px
    }

    .photo-note {
        min-width:230px;
        right:-10px;
        padding:22px
    }

    .photo-note p {
        font-size:21px
    }

    .cards-grid {
        grid-template-columns:repeat(2,minmax(0,1fr))
    }

    .cards-grid>.portfolio-card:last-child:nth-child(odd) {
        grid-column:1/-1;
        max-width:calc(50% - 10px)
    }

    .process-grid,.principles-grid {
        gap:25px
    }

    .process-grid h3,.principles-grid h3 {
        font-size:20px
    }

    .process-grid p,.principles-grid p {
        font-size:14px
    }

    .conversation-inner {
        gap:40px;
        grid-template-columns:1.1fr 1fr
    }

    .conversation h2 {
        font-size:32px
    }

    .page-hero-grid {
        grid-template-columns:1fr;
        gap:36px
    }

    .page-hero-image {
        aspect-ratio:2;
        max-height:360px
    }

    .page-hero-copy h1 {
        max-width:750px
    }

    .page-hero {
        padding-bottom:48px
    }

    .breadcrumbs {
        margin-bottom:20px
    }

    .contact-grid {
        gap:35px;
        grid-template-columns:1fr 1fr
    }

    .contact-details h2,.enquiry-panel h3 {
        font-size:34px
    }

    .enquiry-panel {
        padding:26px
    }

    .contact-details>p {
        font-size:14px
    }

    .enquiry-panel .button {
        padding:12px 14px;
        font-size:12px;
        gap:12px
    }

    .contact-method {
        gap:15px
    }

    .contact-method a {
        font-size:12px
    }

    .availability-banner {
        align-items:flex-start;
        gap:15px;
        flex-wrap:wrap
    }

    .availability-banner .text-link {
        margin-left:42px
    }

    .resource-grid {
        grid-template-columns:repeat(2,minmax(0,1fr))
    }

    .form-layout {
        grid-template-columns:1fr;
        gap:40px
    }

    .form-layout aside {
        max-width:620px
    }

    .form-preview-note {
        margin-top:24px
    }

    .form-layout aside h2 {
        font-size:34px
    }

    .article-grid {
        grid-template-columns:1fr
    }

    .article-grid aside {
        position:static;
        display:none
    }

    .footer-grid {
        grid-template-columns:1fr 1fr 1fr;
        gap:28px
    }

    .footer-brand {
        grid-column:1/-1
    }

    .footer-brand>p {
        font-size:18px
    }

    .footer-location {
        grid-column:auto;
        display:block
    }

    .footer-location h2 {
        min-width:0
    }

    .footer-location address {
        margin-bottom:15px
    }

    .footer-grid h2 {
        margin-bottom:20px
    }

    .footer-bottom {
        align-items:start;
        flex-direction:column;
        gap:16px
    }

    .footer-bottom nav {
        flex-wrap:wrap;
        gap:20px
    }

    .document-row {
        flex-wrap:wrap
    }

    .document-row>.button {
        margin-left:50px
    }

}

@media(max-width:600px) {
    .container {
        width:calc(100% - 40px)
    }

    .utility-inner {
        min-height:30px;
        font-size:8px
    }

    .utility-inner>span {
        font-size:8px;
        letter-spacing:.01em
    }

    .utility-inner a {
        gap:5px;
        font-size:8px
    }

    .utility-inner .icon {
        width:10px
    }

    .header-inner {
        height:76px
    }

    .brand {
        width:210px
    }

    .menu-toggle {
        width:40px
    }

    .main-nav {
        padding-inline:20px
    }

    .section {
        padding-block:64px
    }

    .section-heading {
        flex-direction:column;
        gap:22px;
        margin-bottom:30px
    }

    .section-heading>p,.section-heading>div:last-child:not(:first-child) {
        max-width:100%;
        font-size:14px
    }

    .section-heading>div:last-child>p {
        max-width:420px
    }

    .eyebrow {
        font-size:9px;
        letter-spacing:.15em;
        margin-bottom:18px
    }

    h2 {
        font-size:34px
    }

    .home-hero-image {
        height:calc(100% - 58px);
        object-position:65% center
    }

    .home-hero::before {
        bottom:58px;
        background:linear-gradient(90deg,#091d27f0,#091d27ad)
    }

    .home-hero-inner {
        padding-top:65px;
        min-height:595px;
        padding-bottom:30px
    }

    .hero-label {
        font-size:8px;
        letter-spacing:.12em;
        gap:10px;
        margin-bottom:28px
    }

    .accent-line {
        width:22px
    }

    .home-hero h1 {
        font-size:clamp(37px,8.7vw,51px);
        line-height:1.17;
        letter-spacing:-.065em;
        margin-bottom:25px
    }

    .home-hero p {
        font-size:15px;
        line-height:1.8;
        max-width:350px
    }

    .desktop-break {
        display:none
    }

    .home-hero .button-row {
        flex-direction:column;
        align-items:start;
        gap:12px;
        margin-top:28px
    }

    .home-hero .button {
        min-height:48px;
        min-width:215px;
        font-size:12px
    }

    .hero-scroll {
        margin-top:30px;
        font-size:8px
    }

    .hero-priorities {
        min-height:58px
    }

    .priorities-inner {
        min-height:58px;
        grid-template-columns:1fr;
        width:100%
    }

    .priorities-inner>div {
        display:none;
        font-size:11px;
        padding-inline:20px
    }

    .priorities-inner>div:first-child {
        display:flex;
        border:0;
        justify-content:flex-start
    }

    .portfolio-feature {
        grid-template-columns:1fr;
        gap:26px
    }

    .portfolio-spotlight {
        min-height:440px
    }

    .portfolio-spotlight>div {
        inset:auto 28px 30px
    }

    .portfolio-spotlight h3 {
        font-size:42px
    }

    .portfolio-spotlight p {
        font-size:14px;
        max-width:250px
    }

    .circle-arrow {
        width:40px;
        height:40px
    }

    .portfolio-rows>a {
        min-height:109px;
        padding-block:20px;
        gap:20px
    }

    .portfolio-rows h3 {
        font-size:21px
    }

    .portfolio-rows p {
        font-size:13px
    }

    .portfolio-rows>a>.icon {
        width:20px
    }

    .expertise-grid {
        grid-template-columns:1fr;
        gap:50px
    }

    .expertise-photo {
        min-height:430px;
        padding-right:16px
    }

    .expertise-photo>img {
        height:370px
    }

    .photo-note {
        right:0;
        min-width:260px;
        padding:26px
    }

    .photo-note p {
        font-size:24px
    }

    .expertise-copy h2 {
        font-size:38px
    }

    .expertise-copy .lead {
        font-size:17px
    }

    .expertise-copy>p:not(.lead) {
        font-size:15px
    }

    .cards-grid {
        grid-template-columns:1fr;
        gap:22px
    }

    .cards-grid>.portfolio-card:last-child:nth-child(odd) {
        grid-column:auto;
        max-width:none
    }

    .card-image {
        aspect-ratio:1.65
    }

    .card-body {
        padding:26px
    }

    .card-body h3 {
        font-size:25px
    }

    .card-body p {
        font-size:14px
    }

    .process-grid,.principles-grid {
        grid-template-columns:1fr;
        gap:28px;
        margin-top:35px
    }

    .process-number {
        margin-bottom:18px
    }

    .process-grid h3,.principles-grid h3 {
        font-size:25px;
        margin-bottom:14px
    }

    .process-grid p,.principles-grid p {
        font-size:15px;
        margin-bottom:0
    }

    .conversation {
        padding-block:57px
    }

    .conversation-inner {
        grid-template-columns:1fr;
        gap:28px
    }

    .conversation h2 {
        font-size:35px
    }

    .conversation p {
        font-size:15px;
        max-width:100%
    }

    .page-hero {
        padding-bottom:40px
    }

    .breadcrumbs {
        font-size:9px;
        gap:9px;
        padding-block:20px;
        margin-bottom:20px
    }

    .breadcrumbs>span[aria-current] {
        max-width:260px
    }

    .page-hero-grid:not(:has(.page-hero-image)) {
        max-width:100%
    }

    .page-hero h1,.page-hero-product .page-hero-copy h1 {
        font-size:38px;
        line-height:1.16;
        overflow-wrap:anywhere
    }

    .page-hero-copy .lead {
        font-size:15px;
        line-height:1.85;
        margin-top:22px
    }

    .page-hero-copy .button-row {
        gap:12px;
        flex-direction:column;
        align-items:start;
        margin-top:28px
    }

    .page-hero-image {
        aspect-ratio:1.35;
        max-height:340px
    }

    .image-caption {
        font-size:9px;
        padding:12px 16px
    }

    .contact-section {
        padding-block:60px
    }

    .contact-grid {
        grid-template-columns:1fr;
        gap:40px
    }

    .contact-details h2 {
        font-size:39px
    }

    .contact-method a,.contact-method address {
        font-size:14px
    }

    .enquiry-panel {
        padding:32px
    }

    .enquiry-panel h3 {
        font-size:40px
    }

    .enquiry-panel>.button {
        font-size:13px
    }

    .enquiry-panel .text-link {
        font-size:12px
    }

    .map-frame {
        height:350px
    }

    .map-caption {
        font-size:10px
    }

    .form-grid {
        grid-template-columns:1fr
    }

    .enquiry-form {
        padding:26px 22px
    }

    .enquiry-form>h2 {
        font-size:24px
    }

    .form-layout aside h2 {
        font-size:34px
    }

    .resource-filter {
        grid-template-columns:1fr;
        gap:18px;
        padding:24px 20px
    }

    .resource-filter .button {
        width:100%
    }

    .resource-grid {
        grid-template-columns:1fr
    }

    .resource-card {
        min-height:260px;
        padding:26px
    }

    .resource-card h2 {
        font-size:23px
    }

    .availability-banner {
        padding:22px 18px;
        gap:12px
    }

    .availability-banner>div {
        flex-basis:calc(100% - 45px)
    }

    .availability-banner .text-link {
        margin-left:38px
    }

    .availability-banner strong {
        font-size:13px
    }

    .availability-banner p {
        font-size:12px
    }

    .pagination {
        gap:5px
    }

    .pagination a,.pagination>span {
        min-width:33px;
        padding:8px 10px;
        font-size:11px
    }

    .document-row {
        gap:18px
    }

    .document-row>div {
        flex-basis:calc(100% - 50px)
    }

    .document-row h3 {
        font-size:17px
    }

    .document-row>.button {
        margin-left:44px;
        padding:10px 16px;
        min-height:43px
    }

    .specifications {
        margin-top:48px;
        padding-top:40px
    }

    .specifications h2 {
        font-size:30px
    }

    .specification-table {
        margin-inline:-2px
    }

    .dialog-content {
        padding:38px 28px
    }

    .dialog-content h2 {
        font-size:31px
    }

    .dialog-content .button {
        font-size:12px
    }

    .dialog-content p {
        font-size:14px
    }

    .page-search {
        padding:20px;
        flex-direction:column;
        align-items:stretch
    }

    .page-search input {
        width:100%;
        font-size:13px
    }

    .search-bar {
        gap:10px
    }

    .header-search .search-bar {
        flex-wrap:wrap
    }

    .header-search .search-bar input {
        flex-basis:100%;
        font-size:13px
    }

    .header-search .button {
        flex:1
    }

    .search-result h2 {
        font-size:22px
    }

    .search-result p {
        font-size:14px
    }

    .empty-state {
        padding:26px
    }

    .filter-tabs {
        gap:8px
    }

    .filter-tabs a {
        font-size:10px;
        padding:9px 12px
    }

    .article-body h2 {
        font-size:29px
    }

    .article-body p {
        font-size:16px
    }

    .article-body section {
        margin-bottom:35px
    }

    .footer-grid {
        grid-template-columns:1fr 1fr;
        gap:34px 24px;
        padding-bottom:46px
    }

    .footer-brand {
        grid-column:1/-1
    }

    .footer-brand img {
        width:250px;
        max-width:100%
    }

    .footer-location {
        grid-column:1/-1;
        border-top:1px solid #ffffff18;
        padding-top:30px
    }

    .footer-grid>div>a:not(.text-link),.footer-location address {
        font-size:12px
    }

    .footer-bottom p {
        font-size:9px
    }

    .footer-bottom nav {
        font-size:10px;
        gap:15px
    }

    .site-footer {
        padding-top:58px
    }

    .legal-copy {
        font-size:14px
    }

    .legal-copy h2 {
        font-size:24px
    }

}

@media(prefers-reduced-motion:reduce) {
    html {
        scroll-behavior:auto
    }

    *,*::before,*::after {
        transition:none!important;
        animation:none!important
    }

}

.page-hero-image.is-illustration {
    background: white;
}
.page-hero-image.is-illustration img {
    object-fit: contain;
    padding: 34px 34px 70px;
}
.card-image.is-icon {
    display: grid;
    place-items: center;
    background: var(--paper);
}
.card-image.is-icon img {
    width: 88px;
    height: 88px;
    object-fit: contain;
}
.priorities-inner .priority-value {
    color: #e7d4c3;
    font-family: var(--heading);
    font-size: 18px;
    letter-spacing: -.03em;
}
.heritage-grid {
    display: grid;
    grid-template-columns: .9fr 1.3fr;
    gap: 90px;
    align-items: start;
}
.heritage-copy p {
    font-size: 15px;
    line-height: 1.9;
}
.original-media-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
    gap: 32px;
}
.original-media {
    margin: 0;
    padding: 28px;
    border: 1px solid var(--line);
    background: white;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-width: 0;
}
.original-media img {
    max-height: 560px;
    width: auto;
    object-fit: contain;
}
.original-media figcaption {
    font-size: 12px;
    color: var(--muted);
    margin-top: 20px;
    text-align: center;
}
.original-media-unavailable {
    background: var(--paper);
    min-height: 180px;
}
.original-media-unavailable > .icon {
    color: var(--red);
    margin-bottom: 18px;
}
.original-media-unavailable p {
    font-size: 13px;
    margin-bottom: 0;
}
.article-date {
    font-size: 12px;
    color: var(--muted);
    margin-bottom: 35px;
}
@media (max-width: 800px) {
    .heritage-grid { grid-template-columns: 1fr; gap: 25px; }
    .priorities-inner .priority-value { font-size: 14px; }
}

/* Complete enquiry forms */
.form-layout > * { min-width: 0; }
.form-section { border: 0; padding: 0; margin: 0 0 36px; min-width: 0; }
.form-section > legend { display: flex; align-items: center; gap: 12px; width: 100%; font-size: 18px; font-weight: 600; padding: 0 0 18px; margin-bottom: 22px; border-bottom: 1px solid var(--line); }
.form-section > legend > span { color: var(--red); font-size: 11px; letter-spacing: .08em; }
.sample-form > .form-required { margin: 0 0 30px; }
.choice-group { border: 0; padding: 0; margin: 0 0 28px; min-width: 0; }
.choice-group > legend { padding: 0; font-size: 13px; font-weight: 600; margin-bottom: 12px; }
.choice-group > legend > span { color: var(--red); }
.choice-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 16px; }
.choice-grid-compact { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.check-option { display: flex; align-items: flex-start; gap: 9px; font-size: 11px; line-height: 1.65; font-weight: 400; margin: 0; cursor: pointer; }
.check-option input { width: 16px; height: 16px; min-height: 0; flex: 0 0 16px; padding: 0; margin: 2px 0 0; accent-color: var(--red); cursor: pointer; }
.check-option > span { color: var(--ink); overflow-wrap: anywhere; }
.check-option:has(input:checked) > span { color: var(--red); }
.field-help { font-size: 11px; color: var(--muted); line-height: 1.8; margin: 0 0 14px; }
.selection-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.selection-count { white-space: nowrap; font-size: 10px; color: var(--muted); }
.selection-count.is-over-limit { color: var(--red); font-weight: 600; }
.sample-category { border: 1px solid var(--line); margin-bottom: 10px; }
.sample-category > summary, .resource-advanced > summary { display: flex; justify-content: space-between; gap: 15px; cursor: pointer; list-style: none; font-size: 12px; font-weight: 600; padding: 16px; }
.sample-category > summary::-webkit-details-marker, .resource-advanced > summary::-webkit-details-marker { display: none; }
.sample-category > summary > span, .resource-advanced > summary > span { font-size: 18px; line-height: 1; color: var(--red); transition: transform .2s ease; }
.sample-category[open] > summary > span, .resource-advanced[open] > summary > span { transform: rotate(45deg); }
.sample-category[open] > summary { background: var(--paper); }
.sample-category-content { padding: 20px 16px; }
.sample-grade-group + .sample-grade-group { border-top: 1px solid var(--line); padding-top: 18px; margin-top: 18px; }
.sample-grade-group h3 { font-size: 11px; line-height: 1.7; margin-bottom: 12px; }
.form-context { font-size: 12px; line-height: 1.9; padding: 15px; background: var(--paper); margin: 0 0 24px; overflow-wrap: anywhere; }
.form-preview-status { display: flex; gap: 12px; padding: 18px 0; margin-bottom: 15px; border-top: 1px solid var(--line); color: var(--muted); }
.form-preview-status .icon { width: 18px; flex-shrink: 0; }
.form-preview-status p { font-size: 11px; margin: 0; line-height: 1.8; }
.field-error { font-size: 11px; line-height: 1.7; color: var(--red); margin: 7px 0 0; }
[aria-invalid="true"] { border-color: var(--red); }
.form-error-summary { border-left: 3px solid var(--red); padding: 20px 24px; background: #f8eeee; font-size: 12px; margin-bottom: 24px; }
.form-error-summary ul { padding-left: 18px; margin-bottom: 0; }
.upload-field input { padding: 14px; min-height: 85px; background: var(--paper); border-style: dashed; font-size: 11px; }
.upload-field input::file-selector-button { border: 1px solid var(--line); background: #fff; padding: 9px 12px; margin-right: 10px; color: var(--ink); cursor: pointer; font: inherit; }
.upload-field .field-help { margin-top: 9px; }
.upload-status { font-size: 11px; overflow-wrap: anywhere; margin: 0; }
.resource-advanced { grid-column: 1 / -1; grid-row: 2; border-top: 1px solid var(--line); padding-top: 8px; }
.resource-advanced > summary { padding-inline: 0; }
.resource-advanced .form-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); padding: 6px 0 12px; }

/* Favicon loading screen */
.site-preloader { position: fixed; inset: 0; z-index: 9999; background: var(--paper); align-items: center; justify-content: center; opacity: 0; pointer-events: none; transition: opacity .35s ease; }
.is-loading .site-preloader { opacity: 1; pointer-events: auto; }
.is-loaded .site-preloader:not([hidden]) { display: flex; }
.site-preloader[hidden] { display: none; }
.preloader-inner { text-align: center; padding: 30px; }
.preloader-mark { width: 92px; height: 92px; display: grid; place-items: center; position: relative; margin: 0 auto 25px; }
.preloader-mark img { width: 52px; height: 52px; object-fit: contain; animation: mark-breathe 1.8s ease-in-out infinite; }
.preloader-orbit { position: absolute; inset: 0; border: 1px solid #b636361c; border-top-color: var(--red); border-radius: 50%; animation: loader-orbit 1.6s linear infinite; }
.preloader-brand { font-size: 13px; font-weight: 600; letter-spacing: .11em; color: var(--ink); margin: 0 0 8px; text-transform: uppercase; }
.preloader-brand > span { font-weight: 400; }
.preloader-caption { font-size: 10px; color: var(--muted); letter-spacing: .05em; }
.preloader-track { display: block; width: 110px; height: 2px; background: #b6363615; overflow: hidden; margin: 24px auto 0; }
.preloader-track > span { display: block; height: 100%; width: 45%; background: var(--red); animation: loader-track 1.5s ease-in-out infinite; }
.preloader-continue { display: block; font: inherit; font-size: 11px; background: transparent; color: var(--muted); text-decoration: underline; padding: 12px; margin: 16px auto 0; cursor: pointer; border: 0; }
.preloader-continue[hidden] { display: none; }
@keyframes loader-orbit { to { transform: rotate(360deg); } }
@keyframes mark-breathe { 50% { opacity: .65; transform: scale(.94); } }
@keyframes loader-track { from { transform: translateX(-110%); } to { transform: translateX(330%); } }

/* Restrained entrance and interaction motion */
.motion-reveal { opacity: 0; transform: translateY(18px); transition: opacity .65s ease var(--reveal-delay, 0ms), transform .65s cubic-bezier(.2,.7,.3,1) var(--reveal-delay, 0ms); }
.motion-reveal.is-revealed, .motion-reveal:focus-within { opacity: 1; transform: none; }
.is-loaded .home-hero-inner > .hero-label, .is-loaded .page-hero-copy > .eyebrow { animation: content-enter .65s both; }
.is-loaded .home-hero-inner > h1, .is-loaded .page-hero-copy > h1 { animation: content-enter .75s .08s both; }
.is-loaded .home-hero-inner > p, .is-loaded .page-hero-copy > .lead { animation: content-enter .75s .16s both; }
.is-loaded .home-hero-inner > .button-row, .is-loaded .page-hero-copy > .button-row { animation: content-enter .75s .23s both; }
.button .icon, .text-link .icon { transition: transform .25s ease; }
.button:hover .icon, .text-link:hover .icon { transform: translateX(3px); }
.nav-dropdown:not([hidden]) { animation: content-enter .18s ease both; }
#document-dialog[open] { animation: content-enter .22s ease both; }
@keyframes content-enter { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
@media (max-width: 767px) {
    .choice-grid { grid-template-columns: 1fr; }
    .choice-grid-compact { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .selection-heading { flex-wrap: wrap; gap: 0; margin-bottom: 10px; }
    .selection-heading .field-help { margin-bottom: 5px; }
    .form-section > legend { font-size: 16px; }
    .resource-advanced .form-grid { grid-template-columns: 1fr; }
    .enquiry-form .button { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
    .motion-reveal { opacity: 1; transform: none; }
}

/* Company identity */
.brand { display: inline-flex; align-items: center; width: 300px; max-width: 100%; color: var(--ink); }
.brand .brand-logo { display: block; width: 100%; height: auto; max-height: none; margin: 0; filter: none; object-fit: contain; }
.footer-grid > .footer-brand > .footer-wordmark { display: inline-flex; width: 340px; max-width: 100%; margin-bottom: 24px; }
.footer-entity { border-top: 1px solid #ffffff1a; padding-block: 32px; }
.footer-entity .footer-legal-name { font-family: var(--heading); font-size: 16px; line-height: 1.65; font-weight: 600; color: #e0e6e1; max-width: 800px; margin-bottom: 8px; overflow-wrap: anywhere; }
.footer-entity > p { font-size: 11px; color: #b6c4c0; margin-bottom: 16px; }
.footer-registration { display: flex; flex-wrap: wrap; gap: 12px 32px; font-size: 11px; color: #b6c4c0; }
.footer-registration strong { font-weight: 600; color: #e0e6e1; }
.footer-bottom > p { max-width: 690px; line-height: 1.8; }
.footer-bottom > nav { flex-shrink: 0; }
.contact-legal-name { color: var(--ink); font-family: var(--heading); font-size: 14px; font-weight: 600; line-height: 1.8; overflow-wrap: anywhere; }
.company-record { border: 1px solid var(--line); background: #fff; padding: 44px; }
.company-record-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 28px; padding-bottom: 32px; border-bottom: 1px solid var(--line); }
.company-record-heading h3 { font-size: clamp(20px, 2.2vw, 28px); max-width: 800px; line-height: 1.5; overflow-wrap: anywhere; margin-bottom: 10px; }
.company-record-heading p { margin: 0; font-size: 13px; }
.company-status { display: inline-flex; gap: 8px; align-items: center; font-size: 10px; letter-spacing: .08em; font-weight: 600; color: #2f6255; border: 1px solid #d6e4de; background: #f0f6f2; padding: 8px 12px; white-space: nowrap; margin-top: 5px; }
.company-status > span { width: 5px; height: 5px; background: currentColor; border-radius: 50%; }
.company-record-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; margin: 32px 0 0; }
.company-record-grid > div { min-width: 0; }
.company-record-grid dt { font-size: 10px; text-transform: uppercase; letter-spacing: .08em; color: var(--muted); margin-bottom: 10px; }
.company-record-grid dd { font-size: 14px; line-height: 1.9; color: var(--ink); margin: 0; overflow-wrap: anywhere; }
.company-record-grid address { font-style: normal; }
@media (max-width: 1250px) {
    .brand { width: 260px; }
}
@media (max-width: 767px) {
    .brand { width: min(270px, calc(100vw - 120px)); }
    .footer-entity .footer-legal-name { font-size: 14px; }
    .company-record { padding: 24px; }
    .company-record-heading { flex-direction: column; gap: 15px; padding-bottom: 24px; }
    .company-record-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px; }
}
@media (max-width: 480px) {
    .company-record-grid { grid-template-columns: 1fr; }
    .footer-registration { flex-direction: column; gap: 8px; }
    .preloader-brand { font-size: 11px; letter-spacing: .08em; }
}

/* Enquiry actions and live forms */
.enquiry-actions { display: flex; flex-direction: column; align-items: flex-start; gap: 24px; margin-top: 28px; }
.enquiry-actions > .button, .enquiry-actions > .text-link { margin: 0; }
.enquiry-actions > .text-link { width: fit-content; }
.contact-form-section { border-top: 1px solid var(--line); }
form[data-formsubmit] > .button[type="submit"] { margin-top: 28px; }
form[data-formsubmit] button[disabled] { opacity: .7; cursor: wait; }
.form-honeypot { display: none; }
.thank-you-section { min-height: 55vh; display: grid; align-items: center; }
@media (max-width: 600px) {
    .enquiry-actions { align-items: stretch; gap: 24px; }
    .enquiry-actions > .button { width: 100%; }
}

/* Bioziel identity */
.brand { width: 245px; gap: 12px; }
.brand .brand-symbol { display: block; width: 50px; height: 54px; max-height: none; flex: 0 0 50px; margin: 0; filter: none; }
.brand-wordmark { display: flex; flex-direction: column; font-family: var(--heading); line-height: 1.15; }
.brand-wordmark strong { font-size: 25px; letter-spacing: .055em; font-weight: 600; }
.brand-wordmark > span { color: var(--muted); font-size: 10px; letter-spacing: .32em; margin-top: 8px; }
.brand-light .brand-wordmark strong { color: #f6f7f8; }
.brand-light .brand-wordmark > span { color: #ccd3d5; }
@media (max-width: 1250px) { .brand { width: 225px; } }
@media (max-width: 480px) {
    .brand { width: min(225px, calc(100vw - 120px)); gap: 9px; }
    .brand .brand-symbol { width: 43px; height: 46px; flex-basis: 43px; }
    .brand-wordmark strong { font-size: 22px; }
    .brand-wordmark > span { font-size: 9px; }
}
