@font-face {
    font-family:Proxima;
    src:url('../Fonts/ProximaNova-Regular.woff2') format('woff2');
    font-style:normal;
    font-weight:400;
    font-display:swap
}

:root {
    --ink:#101e29;
    --muted:#55616a;
    --mint:#b6ef80;
    --line:#dce1de;
    --paper:#fafbf9;
    --dark-line:#33424c;
    --light:#aebdc5
}

* {
    box-sizing:border-box
}

html {
    scroll-behavior:smooth;
    scroll-padding-top:110px
}

body {
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:Proxima,Arial,sans-serif;
    font-size:17px;
    line-height:1.55
}

button,input,select,textarea {
    font:inherit
}

button,a,input,select,textarea {
    -webkit-tap-highlight-color:transparent
}

a {
    color:inherit;
    text-decoration:none
}

button {
    cursor:pointer
}

button:disabled {
    cursor:not-allowed;
    opacity:.55
}

img,svg {
    max-width:100%
}

h1,h2,h3,p {
    margin-top:0
}

h1,h2,h3 {
    font-weight:600;
    line-height:1.08;
    letter-spacing:-.045em
}

h1 {
    font-size:clamp(3rem,5.4vw,5.5rem);
    margin-bottom:26px
}

h2 {
    font-size:clamp(2.25rem,3.5vw,3.55rem);
    margin-bottom:24px
}

h3 {
    font-size:1.5rem;
    letter-spacing:-.025em
}

p {
    color:var(--muted)
}

[hidden] {
    display:none!important
}

a:focus-visible,button:focus-visible,summary:focus-visible {
    outline:3px solid #54872c;
    outline-offset:6px
}

.hero a:focus-visible,.site-header a:focus-visible,.site-header button:focus-visible,.motion-toggle:focus-visible {
    outline-color:var(--mint)
}

.container {
    width:min(1280px,calc(100% - 112px));
    margin-inline:auto
}

.section {
    padding-block:100px
}

.eyebrow {
    font-size:.78rem;
    font-weight:bold;
    letter-spacing:.16em;
    margin-bottom:24px;
    color:#52634a;
    display:flex;
    align-items:center;
    gap:10px
}

.skip-link {
    position:fixed;
    top:12px;
    left:12px;
    padding:12px 20px;
    background:var(--mint);
    z-index:100;
    transform:translateY(-180%)
}

.skip-link:focus {
    transform:none
}

.site-header {
    background:var(--ink);
    color:#fff;
    border-bottom:1px solid #ffffff12;
    position:sticky;
    top:0;
    z-index:20
}

.header-inner {
    min-height:94px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:30px
}

.brand {
    display:inline-flex;
    gap:12px;
    align-items:center;
    font-size:1.75rem;
    font-weight:bold;
    letter-spacing:-.045em;
    line-height:1
}

.brand-mark {
    font:700 1.35rem monospace;
    letter-spacing:-.18em;
    display:inline-block;
    margin-right:5px
}

.brand-mark b {
    color:var(--mint);
    font-weight:normal
}

.brand-dot {
    color:var(--mint)
}

.main-navigation {
    display:flex;
    align-items:center;
    gap:36px;
    font-size:.95rem
}

.main-navigation>a:not(.button) {
    color:#c5ced3
}

.main-navigation>a:hover,.main-navigation>a[aria-current] {
    color:var(--mint)
}

.button {
    background:var(--mint);
    color:var(--ink);
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:28px;
    min-height:55px;
    padding:15px 23px;
    font-weight:bold;
    font-size:1rem;
    border:1px solid transparent;
    border-radius:5px;
    transition:background .2s,transform .2s
}

.button:hover {
    background:#c8f8a0;
    transform:translateY(-2px)
}

.button-small {
    min-height:44px;
    padding:10px 18px;
    font-size:.9rem
}

.button-dark {
    color:#fff;
    background:var(--ink)
}

.button-dark:hover {
    background:#2d414b
}

.menu-toggle {
    display:none;
    background:none;
    color:#fff;
    border:1px solid var(--dark-line);
    padding:8px 14px;
    border-radius:4px;
    min-height:44px
}

.hero {
    background:var(--ink);
    color:#fff;
    position:relative;
    isolation:isolate;
    overflow:hidden
}

#energy-canvas {
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    pointer-events:none;
    z-index:-1;
    opacity:.65
}

.hero-grid {
    display:grid;
    grid-template-columns:1.2fr 1fr;
    gap:55px;
    align-items:center;
    padding-top:90px;
    padding-bottom:85px
}

.hero .eyebrow {
    color:#b6c6c1
}

.status-dot {
    width:7px;
    height:7px;
    background:var(--mint);
    border-radius:50%;
    display:inline-block;
    flex-shrink:0;
    box-shadow:0 0 12px #b6ef8060
}

.hero h1 span,.page-hero h1 span {
    color:var(--mint)
}

.hero-description {
    color:#bac6ce;
    max-width:480px;
    font-size:1.15rem;
    line-height:1.65
}

.actions {
    display:flex;
    gap:27px;
    align-items:center;
    flex-wrap:wrap;
    margin-top:33px
}

.text-link {
    font-weight:bold;
    display:inline-block;
    line-height:1.45;
    border-bottom:1px solid #8aa078;
    padding-bottom:4px
}

.text-link:hover {
    color:#527835
}

.text-link.light {
    color:#e0e8ea;
    border-bottom:1px solid #607269;
    font-size:.95rem
}

.hero-note {
    font-size:.85rem;
    color:#8fa2ae;
    margin:23px 0 0
}

.hero-strip {
    position:relative;
    border-top:1px solid var(--dark-line);
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    padding-block:24px;
    font-size:.76rem;
    letter-spacing:.09em;
    color:#a0b1ba
}

.hero-strip>div {
    display:flex;
    align-items:center;
    gap:23px;
    letter-spacing:0;
    font-size:.9rem
}

.motion-toggle {
    border:1px solid #42525c;
    border-radius:4px;
    color:#c9d5dc;
    background:#172733;
    padding:8px 10px;
    font-size:.78rem;
    min-height:38px;
    display:inline-flex;
    gap:13px;
    align-items:center
}

.motion-toggle:hover {
    border-color:var(--mint)
}

.system-diagram {
    position:relative;
    padding:26px 26px 18px;
    max-width:500px;
    width:100%;
    justify-self:end;
    border:1px solid #31444c;
    border-radius:12px;
    background:radial-gradient(ellipse at 50% 50%,#b6ef8010,transparent 68%),#14242cbb;
    box-shadow:0 25px 70px #00000016
}

.diagram-heading {
    display:flex;
    justify-content:space-between;
    color:#a3b9c3;
    font:12px monospace;
    letter-spacing:.07em;
    margin-bottom:34px;
    position:relative
}

.diagram-grid {
    position:absolute;
    inset:50px 0 0;
    background-image:radial-gradient(#93bfa433 .8px,transparent .8px);
    background-size:18px 18px;
    pointer-events:none
}

.diagram-node {
    position:relative;
    border:1px solid #425650;
    background:#1b2b32;
    box-shadow:0 10px 24px #00000016;
    border-radius:7px;
    padding:20px;
    color:#edf4ef;
    transition:border-color .2s,background .2s
}

.diagram-node:hover {
    border-color:var(--mint);
    background:#243c3d
}

.diagram-node small,.diagram-core small {
    display:block;
    font:11px monospace;
    letter-spacing:.09em;
    color:#a0b8b0;
    margin-bottom:7px
}

.diagram-node strong {
    display:block;
    font-size:1.1rem;
    line-height:1.2
}

.node-top {
    display:flex;
    align-items:center;
    gap:16px;
    margin:0 23px
}

.node-icon {
    font:22px monospace;
    color:var(--mint)
}

.node-plus {
    margin-left:auto;
    color:var(--mint)
}

.diagram-core {
    position:relative;
    background:var(--mint);
    color:var(--ink);
    border-radius:8px;
    padding:26px 24px;
    display:flex;
    align-items:center;
    gap:25px;
    box-shadow:0 0 60px #b6ef8012
}

.diagram-core small {
    color:#40582e
}

.diagram-core strong {
    font-size:2rem;
    letter-spacing:-.035em;
    display:block;
    line-height:1.2
}

.diagram-core div>span {
    display:block;
    font-size:.85rem;
    margin-top:6px;
    color:#3e552e
}

.core-symbol {
    font-size:4rem;
    line-height:1;
    animation:core-turn 30s linear infinite
}

.diagram-connector {
    height:45px;
    width:1px;
    background:#a4d48a50;
    margin:auto;
    position:relative;
    overflow:visible
}

.diagram-connector:after {
    content:"";
    position:absolute;
    left:-3px;
    bottom:0;
    width:7px;
    height:7px;
    border-radius:50%;
    background:#b6ef80
}

.diagram-connector span {
    display:block;
    position:absolute;
    width:2px;
    height:18px;
    background:#d6ffba;
    left:0;
    box-shadow:0 0 10px #b6ef80;
    animation:signal-flow 2.8s linear infinite
}

.diagram-connector.lower span {
    animation-delay:1.4s
}

.diagram-bottom {
    position:relative;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:16px
}

.diagram-bottom .node-icon {
    display:block;
    margin-bottom:15px
}

.diagram-bottom strong {
    font-size:1rem
}

.diagram-caption {
    display:flex;
    align-items:center;
    justify-content:center;
    gap:9px;
    margin-top:27px;
    font-size:.8rem;
    color:#a1b8b2
}

@keyframes signal-flow {
    0% {
        transform:translateY(-8px);
        opacity:0
    }
    15%,75% {
        opacity:1
    }
    100% {
        transform:translateY(35px);
        opacity:0
    }
}

@keyframes core-turn {
    to {
        transform:rotate(360deg)
    }
}

.effects-paused .core-symbol,.effects-paused .diagram-connector span {
    animation-play-state:paused
}

.section-heading {
    display:flex;
    justify-content:space-between;
    align-items:end;
    gap:50px;
    margin-bottom:45px
}

.section-heading h2 {
    margin-bottom:0
}

.section-heading>p {
    max-width:345px;
    margin-bottom:3px
}

.service-grid {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:16px
}

.service-card {
    display:flex;
    flex-direction:column;
    border:1px solid var(--line);
    border-radius:7px;
    padding:28px 25px;
    background:#fff;
    transition:border-color .2s,transform .2s,box-shadow .2s;
    position:relative;
    overflow:hidden
}

.service-card:before {
    content:"";
    height:2px;
    position:absolute;
    left:0;
    top:0;
    width:0;
    background:#78b64c;
    transition:width .35s
}

.service-card:hover {
    border-color:#99ba85;
    transform:translateY(-4px);
    box-shadow:0 12px 25px #172f2110
}

.service-card:hover:before {
    width:100%
}

.service-card.featured {
    background:#eef5e9;
    border-color:#cddfc3
}

.service-index {
    font:12px monospace;
    letter-spacing:.06em;
    color:#626f61;
    display:block;
    margin-bottom:30px
}

.service-icon {
    font:28px monospace;
    height:43px;
    margin-bottom:28px;
    display:block;
    color:#3d6930
}

.service-card h3 {
    font-size:1.5rem;
    line-height:1.14;
    margin-bottom:16px
}

.service-card p {
    font-size:.97rem;
    line-height:1.6;
    margin-bottom:30px
}

.card-link {
    margin-top:auto;
    padding-top:20px;
    border-top:1px solid var(--line);
    font-size:.86rem;
    font-weight:bold;
    display:flex;
    justify-content:space-between;
    gap:7px
}

.card-link span {
    font-size:1.15rem
}

.approach-section,.soft-section {
    background:#edf1ed
}

.approach-section {
    padding-block:100px;
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line)
}

.approach-grid {
    display:grid;
    grid-template-columns:1fr 1.1fr;
    gap:110px
}

.section-intro {
    max-width:365px;
    margin-bottom:35px
}

.process-list {
    list-style:none;
    margin:0;
    padding:0
}

.process-list li {
    display:flex;
    gap:30px;
    border-top:1px solid #ccd5ce;
    padding:25px 0
}

.process-list li:first-child {
    padding-top:5px;
    border-top:0
}

.process-list li>span {
    font:14px monospace;
    color:#677c60;
    padding-top:5px
}

.process-list h3 {
    font-size:1.45rem;
    margin-bottom:10px
}

.process-list p {
    margin:0;
    max-width:430px
}

.resource-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:25px;
    align-items:start
}

details {
    border-top:1px solid #aab8ab
}

summary {
    cursor:pointer;
    list-style:none
}

summary::-webkit-details-marker {
    display:none
}

.resource-grid summary {
    padding:24px 0
}

.resource-grid h3 {
    max-width:270px;
    font-size:1.6rem;
    margin-bottom:25px;
    line-height:1.2
}

.resource-grid .service-index {
    margin-bottom:23px
}

.detail-label {
    font-size:.9rem;
    display:flex;
    justify-content:space-between;
    align-items:center
}

.detail-label b,summary>span:last-child {
    transition:transform .2s
}

details[open] .detail-label b,.faq-section details[open] summary>span:last-child {
    transform:rotate(45deg)
}

.detail-body {
    padding:0 0 23px;
    font-size:1rem
}

.detail-body ul {
    padding-left:22px
}

.detail-body li {
    margin-bottom:10px
}

.cta-panel {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:50px;
    background:var(--mint);
    padding:56px 60px;
    border-radius:8px;
    margin-bottom:100px
}

.cta-panel .eyebrow {
    color:#40582e
}

.cta-panel h2 {
    margin-bottom:17px
}

.cta-panel p:not(.eyebrow) {
    max-width:470px;
    color:#3e552e;
    margin-bottom:0
}

.cta-panel .button {
    flex-shrink:0
}

.site-footer {
    background:var(--ink);
    color:#fff;
    padding-top:58px
}

.footer-top {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:30px;
    padding-bottom:45px
}

.footer-top p {
    color:#95a6b0;
    font-size:.95rem;
    margin:17px 0 0
}

.footer-top nav {
    display:flex;
    gap:35px;
    font-size:.95rem
}

.footer-top nav a:hover {
    color:var(--mint)
}

.footer-bottom {
    display:flex;
    justify-content:space-between;
    gap:20px;
    border-top:1px solid var(--dark-line);
    padding-block:23px;
    color:#98aab4;
    font-size:.8rem
}

.page-hero {
    background:var(--ink);
    padding-block:45px 70px;
    color:#fff
}

.breadcrumb {
    color:#b7c7cf;
    display:inline-block;
    margin-bottom:35px;
    font-size:.85rem
}

.page-hero .eyebrow {
    color:#afc3b1
}

.page-hero h1 {
    font-size:clamp(2.8rem,4.6vw,4.4rem)
}

.page-hero p:not(.eyebrow) {
    max-width:660px;
    color:#b7c7cf;
    font-size:1.13rem
}

.section-nav {
    display:flex;
    gap:14px;
    flex-wrap:wrap;
    margin-top:32px
}

.section-nav a {
    border:1px solid #536365;
    padding:10px 17px;
    border-radius:4px;
    color:#d0dbd5;
    font-size:.9rem
}

.section-nav a:hover {
    border-color:var(--mint);
    color:var(--mint)
}

.service-detail {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:110px;
    padding-block:90px;
    scroll-margin-top:100px
}

.service-detail>div>p:not(.eyebrow) {
    max-width:470px;
    margin-bottom:28px
}

.deliverables h3 {
    font-size:1.05rem;
    letter-spacing:0;
    margin-top:4px;
    margin-bottom:26px
}

.deliverables ul {
    list-style:none;
    padding:0;
    margin:0
}

.deliverables li {
    border-top:1px solid #cfd9cf;
    padding:21px 0
}

.deliverables strong {
    display:block;
    margin-bottom:8px
}

.deliverables span {
    display:block;
    color:var(--muted);
    font-size:1rem
}

.faq-section {
    display:grid;
    grid-template-columns:1fr 1.3fr;
    gap:80px
}

.faq-section summary {
    padding:24px 0;
    display:flex;
    justify-content:space-between;
    gap:20px;
    font-weight:bold;
    font-size:1.1rem
}

.contact-grid {
    display:grid;
    grid-template-columns:.85fr 1.3fr;
    gap:95px
}

.contact-grid h2 {
    font-size:2.6rem
}

.contact-grid aside>p:not(.eyebrow) {
    max-width:370px
}

.contact-note {
    margin-block:35px;
    padding-top:28px;
    border-top:1px solid var(--line)
}

.contact-note h3 {
    font-size:1.25rem
}

.contact-note ol {
    padding-left:20px;
    color:var(--muted)
}

.contact-note li {
    margin-bottom:13px;
    padding-left:4px
}

.enquiry-panel {
    padding:35px;
    background:#fff;
    border:1px solid var(--line);
    border-radius:8px
}

.form-row {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:20px
}

.field {
    margin-bottom:22px;
    min-width:0
}

.field label {
    display:block;
    font-weight:bold;
    font-size:.95rem;
    margin-bottom:9px
}

.field label span {
    font-weight:normal;
    color:var(--muted);
    font-size:.85rem
}

.field input,.field select,.field textarea {
    width:100%;
    background:#fafbf9;
    border:1px solid #b9c5be;
    border-radius:4px;
    color:var(--ink);
    padding:12px;
    min-height:48px;
    font-size:1rem
}

.field textarea {
    resize:vertical;
    min-height:135px
}

.field input:focus,.field select:focus,.field textarea:focus {
    outline:2px solid #609044;
    outline-offset:2px
}

.small-copy {
    font-size:.88rem;
    line-height:1.6;
    overflow-wrap:anywhere
}

.form-actions {
    gap:15px;
    margin-top:23px
}

.text-button {
    border:0;
    background:transparent;
    font-size:.9rem;
    text-decoration:underline;
    text-underline-offset:4px;
    padding:12px 0
}

.form-status {
    font-size:.93rem;
    margin:18px 0 0;
    color:#356024
}

.error-section {
    padding-block:130px;
    text-align:center
}

.error-section p {
    max-width:520px;
    margin-inline:auto
}

.error-section .eyebrow {
    justify-content:center
}

@media(min-width:1600px) {
    .hero-grid {
        padding-top:115px;
        padding-bottom:105px
    }
}

@media(max-width:1150px) {
    .container {
        width:calc(100% - 64px)
    }
    .hero-grid {
        gap:35px;
        padding-top:65px
    }
    .hero h1 {
        font-size:4.1rem
    }
    .main-navigation {
        gap:24px
    }
    .service-grid {
        grid-template-columns:repeat(2,minmax(0,1fr))
    }
    .service-card h3 br {
        display:none
    }
    .approach-grid,.service-detail {
        gap:65px
    }
    .contact-grid {
        gap:45px
    }
    .system-diagram {
        padding:22px 18px
    }
    .node-top {
        margin:0
    }
    .diagram-core {
        gap:15px;
        padding:24px 18px
    }
    .diagram-core strong {
        font-size:1.7rem
    }
    .core-symbol {
        font-size:3rem
    }
}

@media(max-width:850px) {
    .header-inner {
        min-height:80px
    }
    .brand {
        font-size:1.55rem
    }
    .main-navigation {
        gap:18px;
        font-size:.87rem
    }
    .main-navigation .button {
        padding:10px 13px
    }
    .hero-grid {
        grid-template-columns:1fr;
        padding-block:60px;
        gap:55px
    }
    .hero-copy {
        max-width:640px
    }
    .hero h1 {
        font-size:clamp(3.3rem,8vw,5rem)
    }
    .system-diagram {
        justify-self:center;
        max-width:540px
    }
    .hero-description {
        max-width:540px
    }
    .hero-strip {
        align-items:flex-start;
        flex-direction:column
    }
    .hero-strip>div {
        width:100%
    }
    .motion-toggle {
        margin-left:auto
    }
    .section,.approach-section {
        padding-block:70px
    }
    .section-heading {
        gap:30px;
        align-items:start;
        flex-direction:column
    }
    .section-heading>p {
        max-width:500px
    }
    .approach-grid,.service-detail,.faq-section,.contact-grid {
        grid-template-columns:1fr;
        gap:40px
    }
    .approach-grid .section-intro {
        max-width:500px
    }
    .resource-grid {
        gap:22px
    }
    .resource-grid h3 {
        font-size:1.35rem
    }
    .cta-panel {
        padding:40px;
        gap:30px;
        margin-bottom:70px
    }
    .cta-panel .button {
        max-width:220px
    }
    .service-detail {
        padding-block:65px
    }
    .contact-grid aside>p:not(.eyebrow) {
        max-width:620px
    }
    .contact-note {
        display:none
    }
}

@media(max-width:640px) {
    .container {
        width:calc(100% - 40px)
    }
    .header-inner {
        min-height:74px
    }
    .menu-toggle {
        display:flex;
        align-items:center;
        gap:15px
    }
    .main-navigation {
        display:flex;
        position:absolute;
        top:100%;
        left:0;
        right:0;
        background:#172831;
        padding:16px 20px 23px;
        border-bottom:1px solid #4b605a;
        flex-direction:column;
        align-items:stretch;
        gap:0;
        visibility:hidden;
        pointer-events:none
    }
    .main-navigation.is-open {
        visibility:visible;
        pointer-events:auto
    }
    .main-navigation>a:not(.button) {
        padding:13px 0;
        font-size:1rem
    }
    .main-navigation .button {
        margin-top:12px
    }
    .hero-grid {
        padding-block:43px 45px;
        gap:42px
    }
    .eyebrow {
        font-size:.7rem;
        letter-spacing:.12em;
        margin-bottom:23px
    }
    .hero h1 {
        font-size:clamp(2.65rem,10.5vw,4rem);
        letter-spacing:-.05em
    }
    .hero-description {
        font-size:1.07rem
    }
    .actions {
        gap:21px
    }
    .hero-note {
        font-size:.8rem
    }
    .system-diagram {
        padding:22px 16px 17px
    }
    .diagram-heading {
        font-size:10px;
        letter-spacing:.04em
    }
    .diagram-node {
        padding:17px 14px
    }
    .diagram-bottom {
        gap:12px
    }
    .diagram-bottom strong {
        font-size:.95rem
    }
    .diagram-core strong {
        font-size:1.75rem
    }
    .diagram-core div>span {
        font-size:.78rem
    }
    .core-symbol {
        font-size:2.8rem
    }
    .hero-strip {
        font-size:.64rem;
        letter-spacing:.07em
    }
    .hero-strip>div {
        gap:14px;
        font-size:.84rem;
        flex-wrap:wrap
    }
    .motion-toggle {
        font-size:.73rem
    }
    .section,.approach-section {
        padding-block:55px
    }
    h2 {
        font-size:2.35rem
    }
    .section-heading {
        gap:20px;
        margin-bottom:30px
    }
    .service-grid {
        grid-template-columns:1fr
    }
    .service-card {
        padding:27px
    }
    .service-card h3 {
        font-size:1.7rem
    }
    .service-index {
        margin-bottom:20px
    }
    .service-icon {
        margin-bottom:15px
    }
    .service-card p {
        max-width:350px
    }
    .resource-grid {
        grid-template-columns:1fr;
        gap:10px
    }
    .resource-grid h3 {
        font-size:1.65rem;
        max-width:100%
    }
    .resource-grid .service-index {
        margin-bottom:17px
    }
    .cta-panel {
        display:block;
        padding:33px 27px;
        margin-bottom:55px
    }
    .cta-panel .button {
        margin-top:30px;
        max-width:none
    }
    .footer-top {
        align-items:start;
        flex-direction:column;
        gap:30px
    }
    .footer-top nav {
        flex-wrap:wrap;
        gap:20px
    }
    .footer-bottom {
        flex-direction:column;
        gap:7px
    }
    .page-hero {
        padding-block:30px 45px
    }
    .page-hero h1 {
        font-size:2.7rem
    }
    .section-nav {
        gap:8px
    }
    .section-nav a {
        font-size:.83rem;
        padding:9px 11px
    }
    .service-detail {
        padding-block:55px;
        gap:30px
    }
    .faq-section {
        gap:25px
    }
    .contact-grid h2 {
        font-size:2.3rem
    }
    .enquiry-panel {
        padding:23px 18px
    }
    .form-row {
        grid-template-columns:1fr;
        gap:0
    }
    .contact-grid {
        gap:20px
    }
    .form-actions {
        align-items:stretch;
        flex-direction:column
    }
    .form-actions .button {
        width:100%
    }
    .process-list li {
        gap:20px
    }
    .error-section {
        padding-block:80px
    }
}

@media(prefers-reduced-motion:reduce) {
    html {
        scroll-behavior:auto
    }
    *,*:before,*:after {
        animation:none!important;
        transition:none!important
    }
    .service-card:hover,.button:hover {
        transform:none
    }
}
