@font-face{font-family:'Montserrat';font-style:normal;font-weight:500 800;font-display:swap;src:url(assets/fonts/montserrat-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:500 800;font-display:swap;src:url(assets/fonts/montserrat-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:400 700;font-display:swap;src:url(assets/fonts/dm-sans-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:400 700;font-display:swap;src:url(assets/fonts/dm-sans-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{--ink:#0B265B;--navy:#0B2558;--blue:#0069CC;--ocean:#0565C5;--paper:#F6F9FC;--off:#E4EDF4;--sage:#9DABBE;--muted:#4A5A70;--text-muted:#4A5A70;--text-placeholder:#576982;--blue-text:#044F9A;--fs-label:12px;--fs-ui-sm:13px;--fs-ui:14px;--fs-body:16px;--fs-lead:17px}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth;scroll-padding-top:100px}
body{margin:0;background:#F6F9FC;color:#0A2355;font-family:'DM Sans',Arial,sans-serif;-webkit-font-smoothing:antialiased}
img,svg{max-width:100%}
a{text-decoration:none;color:inherit}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #0671DC;outline-offset:4px}
.shell{width:min(1380px,calc(100% - 104px));margin-inline:auto}
.skip-link{position:absolute;top:-100px;left:0;padding:12px;background:white;z-index:999}
.skip-link:focus{top:0}
.announcement{height:34px;background:#0B2457;color:#DCE7F0;display:flex;gap:11px;justify-content:center;align-items:center;font-size:var(--fs-label);text-transform:uppercase;letter-spacing:.19em}
.announcement-dot{width:5px;height:5px;background:#40C5F5;border-radius:100%}
.announce-sep{opacity:.35}
.announcement-arrow{opacity:.65;margin-left:10px}
.site-header{position:sticky;top:0;z-index:20;background:rgba(246,249,252,.96);backdrop-filter:blur(17px);border-bottom:1px solid #D6E3EE}
.header-inner{display:flex;justify-content:space-between;align-items:center;min-height:91px;gap:25px}
.navigation{display:flex;gap:31px;align-items:center;margin-left:auto;margin-right:auto}
.navigation a{font-size:var(--fs-ui);color:#0F3176;font-weight:600;transition:color .2s}
.navigation a:hover,.header-call:hover{color:#0568CB}
.header-actions{display:flex;align-items:center;gap:20px}
.header-call{font-size:var(--fs-ui);font-weight:800;white-space:nowrap}
.phone-ico{display:inline-flex;width:25px;height:25px;border:1px solid #CBD3DD;border-radius:50%;align-items:center;justify-content:center;margin-right:7px}
.btn{min-height:51px;padding:0 23px;display:inline-flex;align-items:center;justify-content:space-between;gap:35px;border:1px solid transparent;border-radius:5px;font-family:'Montserrat',sans-serif;font-weight:700;font-size:var(--fs-ui);letter-spacing:.005em;transition:transform .2s,background .2s,box-shadow .2s}
.btn:hover{transform:translateY(-2px);box-shadow:0 10px 30px #0C29631B}
.btn span{font-size:17px;font-weight:400}
.btn-dark{background:#0B2559;color:white}
.btn-blue{background:#0069CC;color:white}
.btn-white{background:#F2F7FC;color:#0D2B68}
.menu-toggle{display:none}
.hero{display:grid;grid-template-columns:.91fr 1.09fr;min-height:675px;position:relative;padding-top:30px;padding-bottom:65px}
.hero-copy{padding:clamp(50px,7.8vw,118px) 37px 40px 2px;align-self:center}
.eyebrow{font-family:'Montserrat',sans-serif;display:flex;align-items:center;gap:13px;color:#0452A1;font-size:var(--fs-label);font-weight:800;letter-spacing:.18em}
.dash{display:inline-block;width:21px;height:1px;background:currentColor}
.hero h1{font-family:'Montserrat',sans-serif;font-weight:600;font-size:clamp(59px,6.3vw,107px);letter-spacing:-.05em;line-height:1.07;max-width:640px;margin:27px 0 27px}
.hero h1 em,.section-title-row h2 em,.process h2 em,.faq-heading h2 em,.enquiry-left h2 em{font-family:inherit;font-weight:inherit;font-style:normal;letter-spacing:inherit}
.hero h1 em{color:#0561BD}
.hero-sub{font-size:var(--fs-lead);line-height:1.85;color:#54667F;max-width:430px}
.hero-actions{display:flex;gap:27px;align-items:center;flex-wrap:wrap;margin-top:32px}
.text-link{font-size:var(--fs-ui);font-weight:800;border-bottom:1px solid #9DAABD;padding-bottom:8px;display:inline-flex;align-items:center;gap:8px}
.text-link span:last-child{margin-left:5px}
.text-link-ico{color:#0454A4}
.hero-note{display:flex;align-items:center;gap:11px;margin-top:60px;color:var(--text-muted);font-size:var(--fs-label);text-transform:uppercase;letter-spacing:.13em;font-weight:700}
.hero-note-icon{font-size:22px;color:#0671DC}
.hero-note i{display:inline-block;width:3px;height:3px;border-radius:50%;background:#8E9EB4;margin:0 6px;vertical-align:middle}
.hero-visual{border-radius:3px 3px 110px 3px;overflow:hidden;min-height:620px;position:relative;background:#A5E3FA}
.hero-visual>img{height:100%;width:100%;object-fit:cover;object-position:61% center;display:block}
.hero-visual-shade{position:absolute;inset:0;background:linear-gradient(180deg,transparent 52%,#0B265C78 100%);pointer-events:none}
.hero-overlay{position:absolute;bottom:45px;left:39px;display:flex;gap:20px;align-items:center;color:white}
.water-orbit svg{width:70px;height:70px}
.hero-overlay-text{font-size:var(--fs-ui);line-height:1.7;letter-spacing:.02em}
.hero-overlay-text strong{font-weight:800}
.visual-caption{position:absolute;top:29px;right:25px;color:#0D2D6B;background:#EBF3FAC4;padding:11px 12px;letter-spacing:.19em;font-weight:800;font-size:var(--fs-label);border-radius:3px}
.hero-index{position:absolute;bottom:17px;right:1px;font-size:var(--fs-label);letter-spacing:.25em;font-weight:700;color:var(--text-muted)}
.hero-index span{font-size:18px;margin-left:15px}
.promise{min-height:120px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid #D1DFEC;color:var(--text-muted)}
.promise>span{font-size:var(--fs-label);letter-spacing:.2em;font-weight:800;white-space:nowrap}
.promise-line{height:1px;background:#CBDCEA;flex:1;max-width:130px}
.section-pad{padding-top:125px;padding-bottom:125px}
.manifesto{background:#0B2D6B;color:white;position:relative;overflow:hidden;min-height:540px;padding-bottom:166px}
.manifesto-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:65px;align-items:end}
.eyebrow.light{color:#6ED3F7}
.manifesto h2{font-size:clamp(36px,4.45vw,70px);font-family:'Montserrat',sans-serif;letter-spacing:-.045em;font-weight:500;line-height:1.19;margin:32px 0 0}
.manifesto .serif{font-family:inherit;font-weight:inherit;letter-spacing:inherit;color:#71D4F8}
.manifesto-right{max-width:360px;padding-bottom:7px}
.manifesto-right p{font-size:var(--fs-lead);line-height:1.9;color:#BBC5D2}
.light-link{font-size:var(--fs-ui);border-bottom:1px solid #6BD2F7;font-weight:700;display:inline-flex;gap:50px;padding-bottom:12px;margin-top:21px}
.manifold-art{position:absolute;bottom:-8px;left:0;width:100%;height:170px;opacity:.35}
.manifold-art svg{height:100%;width:100%}
.manifold-art path{fill:none;stroke:#35C1F4;stroke-width:1}
.section-kicker{display:flex;align-items:center;gap:22px;font-size:var(--fs-label);letter-spacing:.18em;font-weight:800;color:#52637A}
.section-kicker .number{color:var(--blue-text);border:1px solid #A6B3C4;width:29px;height:29px;border-radius:100%;display:flex;align-items:center;justify-content:center;font-size:var(--fs-label);letter-spacing:0}
.benefits-top{display:grid;grid-template-columns:1.4fr .6fr;align-items:end;gap:30px;margin:34px 0 58px}
.benefits-top h2,.section-title-row h2,.process h2,.faq-heading h2{font-size:clamp(44px,5.7vw,81px);line-height:1.14;letter-spacing:-.05em;font-weight:600;font-family:'Montserrat',sans-serif;margin:0}
.benefits-top h2 span{color:#055DB6;font-family:inherit;font-weight:inherit}
.benefits-top p,.section-title-row p,.process-top p,.faq-heading>p{color:var(--text-muted);font-size:var(--fs-body);line-height:1.9;max-width:360px}
.benefit-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #CDD4DE}
.benefit{padding:37px 45px 25px 0;position:relative}
.benefit+.benefit{border-left:1px solid #CDD4DE;padding-left:45px}
.benefit-icon{display:inline-flex;width:71px;height:71px;border:1px solid #CBD3DD;align-items:center;justify-content:center;border-radius:50%;color:#055EB7}
.benefit-icon svg{width:34px}
.benefit h3{font-size:17px;font-weight:800;letter-spacing:-.035em;margin-top:34px}
.benefit p{font-size:var(--fs-body);line-height:1.9;color:var(--text-muted)}
.quote-banner{background:#0458AD;color:white;min-height:445px;display:grid;grid-template-columns:1fr 1fr;overflow:hidden;position:relative;border-radius:3px}
.quote-ornament{height:100%;position:relative;min-height:445px;display:grid;place-items:center}
.quote-ornament .rings{position:absolute;border:1px solid #FFFFFF80;border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%)}
.ring1{width:130px;height:130px}
.ring2{width:245px;height:245px}
.ring3{width:360px;height:360px}
.ring4{width:490px;height:490px}
.quote-ornament span{font-size:170px;line-height:1;font-family:'Montserrat',sans-serif;opacity:.85}
.quote-banner-content{padding:75px 80px 70px 25px;position:relative}
.kicker-white{font-size:var(--fs-label);letter-spacing:.2em;font-weight:800;color:#FFF}
.quote-banner h2{font-family:'Montserrat',sans-serif;font-size:clamp(46px,5.1vw,70px);letter-spacing:-.05em;line-height:1.09;font-weight:550;margin:17px 0}
.quote-banner h2 i{font-family:inherit;font-weight:inherit;font-style:normal;color:#00C6EB}
.quote-banner p{font-size:var(--fs-body);line-height:1.8;color:#FFF;max-width:420px;margin-bottom:25px}
.services .section-title-row{display:grid;grid-template-columns:1.25fr .75fr;align-items:end;gap:35px;margin:38px 0 63px}
.section-title-row h2 em{color:#0564C4}
.services-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}
.service-card{background:#E6F0F9;display:flex;flex-direction:column;padding:25px 24px 28px;min-height:500px;border:1px solid #DBE7F0;transition:background .2s,transform .2s}
.service-card:hover{background:#E2EBF3;transform:translateY(-4px)}
.service-meta{font-size:var(--fs-label);letter-spacing:.13em;font-weight:800;display:flex;justify-content:space-between;color:var(--text-muted)}
.service-meta span{font-size:var(--fs-lead)}
.service-art{height:215px;display:grid;place-items:center;color:#056ACF}
.service-art svg{width:100%;height:200px;max-width:225px}
.service-art-b{color:#5B6E89}
.service-art-c{color:#2CBFF4}
.service-art-d{color:#056DD5}
.service-card h3{font-size:20px;font-family:'Montserrat',sans-serif;letter-spacing:-.05em;margin:3px 0 10px}
.service-card p{font-size:var(--fs-body);line-height:1.8;color:var(--text-muted);margin-bottom:22px}
.service-link{font-size:var(--fs-ui-sm);font-weight:800;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #A8B4C5;padding-bottom:12px;margin-top:auto;color:#0F3176}
.service-link span{font-size:16px}
.process-wrap{background:#E3ECF4}
.process{padding-top:110px;padding-bottom:115px}
.process-top{display:flex;justify-content:space-between;align-items:center;gap:25px;margin:40px 0 35px}
.process h2 em{color:#055BB2}
.process-top p{margin-top:25px}
.process-symbol{width:180px;opacity:.42;color:#0566C7}
.process-symbol svg{stroke:currentColor;stroke-width:1.5}
.steps{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #C4CCD7}
.step{padding:37px 42px 0 0}
.step+.step{padding-left:42px;border-left:1px solid #C4CCD7}
.step>span{font-family:'Montserrat',sans-serif;color:#055DB6;font-size:27px}
.step h3{font-size:19px;letter-spacing:-.03em;margin:24px 0 12px}
.step p{font-size:var(--fs-body);line-height:1.8;color:var(--text-muted)}
.grant{display:flex;gap:60px;align-items:center;border-bottom:1px solid #CDDCEA}
.grant-copy{max-width:710px}
.grant h2{font-size:clamp(32px,3.5vw,49px);font-weight:600;letter-spacing:-.045em;font-family:'Montserrat',sans-serif;margin:20px 0}
.grant p{font-size:var(--fs-body);line-height:1.85;color:var(--text-muted);margin-bottom:20px}
.grant .service-link{max-width:270px}
.questions{background:#E9F2FA}
.faq-layout{display:grid;grid-template-columns:.72fr 1.28fr;gap:110px}
.faq-heading h2{margin:35px 0 22px}
.faq-heading h2 em{color:#055CB4}
.faq-heading .text-link{margin-top:20px}
.faq-list{border-top:1px solid #D0D6DF}
.faq-list details{border-bottom:1px solid #D0D6DF}
.faq-list summary{list-style:none;cursor:pointer;font-size:var(--fs-lead);display:flex;justify-content:space-between;align-items:center;padding:24px 0;font-weight:700;gap:20px}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary .plus{color:#055DB6;font-size:23px;font-weight:400;transition:transform .3s}
.faq-list details[open] summary .plus{transform:rotate(45deg)}
.faq-list details p{max-width:650px;padding:0 30px 23px 0;margin:0;font-size:var(--fs-body);line-height:1.9;color:var(--text-muted)}
.enquiry{background:#0C2860;color:white}
.enquiry-grid{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:start}
.enquiry-left h2{font-family:'Montserrat',sans-serif;font-weight:550;font-size:clamp(47px,5vw,79px);letter-spacing:-.045em;line-height:1.15;margin:40px 0 23px}
.enquiry-left h2 em{color:#00C6EB}
.enquiry-left>p{max-width:420px;color:#C1CAD6;line-height:1.9;font-size:var(--fs-body)}
.direct-contact{display:flex;align-items:flex-start;flex-direction:column;margin-top:75px;gap:8px}
.direct-label{font-size:var(--fs-label);color:#84DAF9;letter-spacing:.2em;font-weight:800}
.giant-phone{font-size:clamp(32px,4.2vw,60px);font-weight:650;letter-spacing:-.05em;font-family:'Montserrat',sans-serif;border-bottom:1px solid #677C9A;padding-bottom:7px}
.giant-phone span{font-size:27px;margin-left:18px}
.direct-contact>span:last-child{font-size:var(--fs-ui);color:#A0ADC0}
.tiny-wave{margin-top:35px}
.enquiry-card{background:#F7FAFD;border-radius:3px;color:#0B2559;padding:36px 38px 40px;box-shadow:0 28px 55px #081C4266}
.form-top{display:flex;justify-content:space-between;color:var(--text-muted);font-size:var(--fs-label);font-weight:800;letter-spacing:.15em}
.enquiry-card h3{font-size:32px;letter-spacing:-.05em;margin:20px 0 27px;font-family:'Montserrat',sans-serif}
.enquiry-card form{display:flex;flex-direction:column}
.enquiry-card fieldset{margin:0 0 22px;padding:0;border:0}
.enquiry-card legend,.enquiry-card label:not(.service-option):not(.consent){font-size:var(--fs-ui);font-weight:800;margin-bottom:10px}
.option-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.service-option input{position:absolute;opacity:0;width:1px;height:1px}
.service-option span{min-height:49px;border:1px solid #CBDCEA;padding:13px 12px;display:flex;align-items:center;justify-content:center;text-align:center;font-size:var(--fs-ui-sm);font-weight:700;color:#51627A;border-radius:3px;cursor:pointer;transition:.2s}
.service-option input:checked+span{border-color:#055FB9;background:#E4EDF4;color:#0F3176}
.service-option input:focus-visible+span{outline:3px solid #0671DC;outline-offset:3px}
.enquiry-card input:not([type=radio]):not([type=checkbox]),.enquiry-card select,.enquiry-card textarea{width:100%;padding:14px 14px;margin:0 0 19px;border:1px solid #CADBEA;background:#FFF;border-radius:2px;outline-offset:1px;color:#0D2A66;font-size:var(--fs-body)}
.enquiry-card input::placeholder,.enquiry-card textarea::placeholder{color:var(--text-placeholder)}
.enquiry-card textarea{resize:vertical;min-height:93px}
.required{color:#0560BB}
.consent{display:flex;align-items:flex-start;gap:10px;font-size:var(--fs-ui-sm);line-height:1.65;color:var(--text-muted);margin:0 0 19px}
.consent input{margin-top:4px;accent-color:#055BB2}
.form-submit{width:100%;justify-content:space-between;border:0}
.form-fine{font-size:var(--fs-ui-sm);line-height:1.7;color:var(--text-muted);margin:18px 0 0}
.form-fine a{text-decoration:underline}
.footer{background:#F6F9FC;padding:80px 0 40px}
.footer-top{display:flex;justify-content:space-between;gap:50px;padding-bottom:65px}
.footer-brand p{font-size:var(--fs-body);line-height:1.9;color:var(--text-muted);margin-top:20px}
.footer-links{display:flex;gap:100px}
.footer-links>div{display:flex;flex-direction:column;gap:13px}
.footer-links strong{font-size:var(--fs-label);letter-spacing:.16em;margin-bottom:10px}
.footer-links a{font-size:var(--fs-ui);color:var(--text-muted)}
.footer-links a:hover{color:#055CB4}
.footer-bottom{border-top:1px solid #CFDEEB;padding:25px 0;display:flex;justify-content:space-between;color:var(--text-muted);font-size:var(--fs-label);letter-spacing:.06em}
.disclaimer{max-width:900px;color:var(--text-muted);font-size:var(--fs-label);line-height:1.7}
.mobile-sticky{display:none}
@media(max-width:1180px){
  .shell{width:min(1120px,calc(100% - 64px))}
  .navigation{gap:17px}
  .header-call{display:none}
  .hero h1{font-size:clamp(57px,6.4vw,86px)}
  .service-card{padding:20px 15px}
  .service-card h3{font-size:18px}
  .enquiry-grid{gap:50px}
}
@media(max-width:850px){
  .site-header{position:sticky}
  .header-inner{min-height:72px}
  .navigation{position:absolute;top:100%;left:0;right:0;display:none;flex-direction:column;align-items:stretch;background:#F6F9FC;padding:24px 32px;box-shadow:0 20px 20px #091F4B1A;gap:21px}
  .navigation.open{display:flex}
  .navigation a{font-size:var(--fs-lead)}
  .nav-quote{display:none}
  .menu-toggle{display:flex;flex-direction:column;gap:5px;background:transparent;border:0;padding:8px}
  .menu-toggle span{display:block;width:25px;height:2px;background:#0C2860}
  .hero{grid-template-columns:1fr;min-height:initial;padding-bottom:45px}
  .hero-copy{padding:55px 0 45px}
  .hero h1{max-width:690px;font-size:clamp(59px,10vw,92px)}
  .hero-visual{min-height:520px;max-height:620px;border-radius:3px 3px 70px 3px}
  .hero-index{display:none}
  .hero-note{margin-top:33px}
  .promise{min-height:100px;flex-wrap:wrap;justify-content:center;gap:12px 28px;padding:24px 0}
  .promise-line{display:none}
  .manifesto-grid{grid-template-columns:1fr;gap:25px}
  .manifesto-right{max-width:600px}
  .benefits-top,.services .section-title-row{grid-template-columns:1fr;gap:15px}
  .services-grid{grid-template-columns:repeat(2,1fr)}
  .service-card{min-height:480px}
  .quote-banner-content{padding:70px 30px 60px 0}
  .faq-layout{grid-template-columns:1fr;gap:50px}
  .enquiry-grid{grid-template-columns:1fr;gap:40px}
  .enquiry-left h2{margin:24px 0}
  .direct-contact{margin-top:30px}
  .tiny-wave{display:none}
  .footer-links{gap:40px}
  .section-pad{padding-top:85px;padding-bottom:85px}
}
@media(max-width:600px){
  .shell{width:calc(100% - 40px)}
  .announcement{font-size:var(--fs-label);letter-spacing:.08em;height:auto;min-height:30px;padding:7px 20px;line-height:1.45;flex-wrap:wrap;gap:2px 10px;text-align:center}
  .announce-sep{display:none}
  .header-inner{min-height:67px}
  .hero{padding-top:0}
  .hero-copy{padding:65px 0 38px}
  .hero h1{font-size:clamp(53px,14vw,79px);line-height:1.06;margin:25px 0 20px}
  .hero-sub{font-size:var(--fs-body)}
  .hero-actions{gap:22px}
  .hero-actions .btn{width:100%}
  .hero-visual{min-height:400px;height:460px;max-height:480px;border-radius:3px 3px 65px 3px}
  .hero-visual>img{object-position:70% center}
  .hero-overlay{bottom:29px;left:20px;gap:11px}
  .water-orbit svg{width:49px;height:49px}
  .hero-overlay-text{font-size:var(--fs-label)}
  .visual-caption{font-size:var(--fs-label);right:12px;top:13px}
  .promise{flex-direction:column;justify-content:center;min-height:156px;gap:13px}
  .promise-line{display:none}
  .manifesto{min-height:initial;padding-bottom:142px}
  .manifesto h2{font-size:clamp(35px,9vw,52px)}
  .manifesto-right p{font-size:var(--fs-body)}
  .benefits-top h2,.section-title-row h2,.process h2,.faq-heading h2{font-size:clamp(43px,11vw,65px)}
  .benefit-grid{grid-template-columns:1fr}
  .benefit{padding:23px 0}
  .benefit+.benefit{padding:23px 0;border-left:0;border-top:1px solid #CDD4DE}
  .benefit h3{margin-top:18px}
  .quote-banner{width:100%;grid-template-columns:1fr;gap:0}
  .quote-ornament{min-height:205px;max-height:205px}
  .quote-ornament .ring1{width:80px;height:80px}
  .quote-ornament .ring2{width:155px;height:155px}
  .quote-ornament .ring3{width:235px;height:235px}
  .quote-ornament .ring4{width:315px;height:315px}
  .quote-ornament span{font-size:95px}
  .quote-banner-content{padding:13px 28px 45px}
  .quote-banner h2{font-size:53px}
  .services-grid{grid-template-columns:1fr;gap:12px}
  .service-card{min-height:425px}
  .service-art{height:155px}
  .service-art svg{height:150px}
  .process-symbol{width:105px}
  .steps{grid-template-columns:1fr}
  .step{padding:24px 0}
  .step+.step{padding:24px 0;border-left:0;border-top:1px solid #C4CCD7}
  .step h3{margin:13px 0 9px}
  .grant{flex-direction:column;align-items:flex-start;gap:0}
  .faq-list summary{font-size:var(--fs-body)}
  .enquiry-card{padding:23px 19px}
  .enquiry-card h3{font-size:26px}
  .option-grid{gap:6px}
  .service-option span{font-size:var(--fs-label);padding:10px 5px}
  .footer{padding:60px 0 100px}
  .footer-top{flex-direction:column;gap:30px}
  .footer-links{gap:30px;justify-content:space-between;flex-wrap:wrap}
  .footer-bottom{gap:12px;flex-wrap:wrap}
  .footer-bottom span:nth-child(2){display:none}
  .mobile-sticky{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:40;background:#F6F9FC;box-shadow:0 -6px 35px #0A225225;padding:11px 15px calc(11px + env(safe-area-inset-bottom));gap:8px}
  .mobile-sticky a{height:46px;display:flex;justify-content:center;align-items:center;border-radius:3px;font-size:var(--fs-ui);font-weight:800;flex:1}
  .mobile-call{background:#E3ECF3;color:#0C275F}
  .mobile-whats{background:#0458AD;color:white}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}
}
/* V2 · locality, audience choice and editorial product guide */
.audience{padding-top:100px;padding-bottom:110px}
.audience-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:45px}
.audience-panel{min-height:390px;padding:36px 40px 32px;display:flex;flex-direction:column;position:relative;overflow:hidden;border-radius:3px;background:#E3ECF3;color:#0B2D6B}
.audience-business{background:#0B2D6B;color:#FFF}
.audience-number,.system-tag,.system-eyebrow{font-size:var(--fs-label);letter-spacing:.15em;font-weight:800}
.audience-number{opacity:.7}
.audience-icon{position:absolute;right:45px;top:30px}
.audience-panel h3{font-family:'Montserrat',sans-serif;font-size:38px;line-height:1.14;letter-spacing:-.035em;margin-top:auto}
.audience-panel p{max-width:340px;line-height:1.7;font-size:var(--fs-body);opacity:.85;margin:13px 0 23px}
.audience-panel a{align-self:flex-start;color:inherit;font-size:var(--fs-ui);font-weight:800;padding-bottom:7px;border-bottom:1px solid currentColor}
.audience-panel a span{padding-left:25px}
.systems-wrap{background:#E5EEF5}
.systems-heading{display:grid;grid-template-columns:1.4fr .6fr;gap:50px;align-items:end;margin:26px 0 42px}
.systems-heading h2{font-family:'Montserrat',sans-serif;font-size:clamp(43px,5.4vw,75px);letter-spacing:-.045em;line-height:1.15;margin:25px 0 0;font-weight:600}
.systems-heading h2 em{font-family:'Montserrat',sans-serif;font-weight:normal;color:#055BB2}
.systems-heading p{font-size:var(--fs-body);color:var(--text-muted);line-height:1.8;max-width:340px}
.systems-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}
.system-card{min-width:0;background:#F9FBFD;display:flex;flex-direction:column;border:1px solid #CED5DF}
.system-visual{height:228px;background:#D9E5F0;position:relative;display:flex;align-items:center;justify-content:center}
.system-visual.visual-blue{background:#D8E4EF}
.system-visual.visual-sand{background:#D7E3EE}
.system-tag{position:absolute;top:22px;left:22px;color:#055EB8}
.unit-illustration{width:88%;height:83%;filter:drop-shadow(0 15px 15px #0B2D6B1A)}
.system-content{display:flex;flex-direction:column;padding:27px;flex:1}
.system-eyebrow{color:var(--blue-text)}
.system-content h3{font-family:'Montserrat',sans-serif;font-size:23px;line-height:1.25;letter-spacing:-.05em;margin:15px 0 13px}
.system-content p{font-size:var(--fs-body);line-height:1.8;color:var(--text-muted);margin:0 0 26px}
.system-choose{margin-top:auto;text-align:left;border:0;background:transparent;border-top:1px solid #CFDEEB;color:#0F3176;display:flex;justify-content:space-between;align-items:center;cursor:pointer;padding:18px 0 0;font:800 12px DM Sans,sans-serif}
.system-choose:hover,.system-choose:focus-visible{color:#0069CC}
.product-note{font-size:var(--fs-ui);line-height:1.8;max-width:820px;color:var(--text-muted);margin-top:26px}
.product-note a{text-decoration:underline;text-underline-offset:2px}
.enquiry-card select{width:100%;padding:14px;margin-bottom:19px;border:1px solid #CADBEA;background:#FFF;color:#0D2A66;border-radius:2px;font-size:var(--fs-body)}
.enquiry-other{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:16px 0 2px}
.enquiry-other a,.copy-action{color:#0F3176;font-size:var(--fs-ui);font-weight:750}
.copy-action{border:0;background:transparent;padding:0;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.form-feedback{font-size:var(--fs-ui);min-height:18px;margin:4px 0;color:#0F3176}
.audience-panel a:focus-visible,.copy-action:focus-visible{outline:3px solid #0565C5;outline-offset:4px}
#systems,#audience{scroll-margin-top:80px}
@media(max-width:850px){
  .systems-heading{grid-template-columns:1fr;gap:15px}
  .systems-grid{grid-template-columns:1fr 1fr}
  .system-card:last-child{grid-column:span 2}
  .audience{padding-top:80px;padding-bottom:80px}
}
@media(max-width:600px){
  .audience-grid,.systems-grid{grid-template-columns:1fr}
  .system-card:last-child{grid-column:auto}
  .audience-panel{min-height:310px;padding:25px}
  .audience-panel h3{font-size:33px}
  .system-visual{height:205px}
  .systems-heading h2{font-size:48px}
  .system-content{padding:24px}
  .enquiry-other{flex-direction:column;align-items:flex-start;gap:17px}
  .nav-quote{display:none}
}
.enquiry-card select{appearance:none;-webkit-appearance:none;cursor:pointer;padding-right:44px;background:#FFF url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23087EAA' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat right 16px center}

/* ---------- Brand: logo sizing ---------- */
.brand img{width:300px;height:auto;display:block}
.footer-brand>img{width:250px;height:auto}
h1 em,h2 em,h2 i{font-style:normal}

/* ---------- Motion layer (active only with html.motion; see motion.js) ---------- */
.ink-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:0;pointer-events:none}
.manifesto>.shell,.enquiry>.shell{position:relative;z-index:1}
.manifold-art{z-index:1;pointer-events:none}
.enquiry{position:relative;overflow:hidden}
.hero-canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.motion .hero-visual>img{opacity:0;animation:ink-fallback .6s 3.5s forwards}
.ink-ready .hero-visual>img{animation:none;opacity:0}
.ink-fallback .hero-visual>img{animation:none;opacity:1;transition:opacity .8s}
@keyframes ink-fallback{to{opacity:1}}

/* Content drifts up into focus, like seeing through water */
.motion [data-r]{opacity:0;transform:translateY(26px);filter:blur(6px);transition:opacity .9s cubic-bezier(.2,.7,.2,1) var(--d,0s),transform 1.1s cubic-bezier(.2,.7,.2,1) var(--d,0s),filter 1.1s ease var(--d,0s)}
.motion [data-r].in{opacity:1;transform:none;filter:none}
.motion .split[data-r]{opacity:1;transform:none;filter:none}
.motion .split .w{display:inline-block;opacity:0;transform:translateY(.42em);filter:blur(8px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform 1s cubic-bezier(.2,.7,.2,1),filter 1s ease;transition-delay:calc(var(--d,0s) + var(--i,0) * 55ms)}
.motion .split.in .w{opacity:1;transform:none;filter:none}
.motion .draw .stroke{stroke-dasharray:var(--len);stroke-dashoffset:var(--len);transition:stroke-dashoffset 1.9s cubic-bezier(.45,0,.2,1) .15s}
.motion .draw.in .stroke{stroke-dashoffset:0}

/* Header tightens on scroll; a thin water line tracks reading progress */
.site-header{transition:box-shadow .4s}
.site-header::after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:2px;background:linear-gradient(90deg,#0077E6,#00C6EB);transform:scaleX(var(--progress,0));transform-origin:left;pointer-events:none}
.header-inner{transition:min-height .4s cubic-bezier(.2,.7,.2,1)}
.site-header.scrolled{box-shadow:0 10px 30px rgba(11,45,107,.08)}
.site-header.scrolled .header-inner{min-height:72px}

/* Water ripple from the tap point; arrows lift toward their destination; underlines fill like liquid */
.btn,.system-choose,.mobile-sticky a,.service-option span{position:relative;overflow:hidden;isolation:isolate}
.tap-ripple{position:absolute;border-radius:50%;background:currentColor;opacity:.22;transform:scale(0);animation:tap-ripple .75s cubic-bezier(.2,.7,.2,1) forwards;pointer-events:none;z-index:-1}
@keyframes tap-ripple{to{transform:scale(1);opacity:0}}
.btn>span:last-child,.service-link>span:last-child,.text-link>span:last-child,.light-link>span:last-child,.system-choose>span:last-child,.audience-panel a>span{display:inline-block;transition:transform .4s cubic-bezier(.2,.7,.2,1)}
.btn:hover>span:last-child,.service-link:hover>span:last-child,.text-link:hover>span:last-child,.light-link:hover>span:last-child,.system-choose:hover>span:last-child,.audience-panel a:hover>span{transform:translate(3px,-3px)}
.text-link,.light-link,.service-link{background:linear-gradient(currentColor,currentColor) 0 100%/0 2px no-repeat;transition:background-size .55s cubic-bezier(.2,.7,.2,1)}
.text-link:hover,.light-link:hover,.service-link:hover{background-size:100% 2px}

/* Service cards fill with water on hover */
.motion .service-card{position:relative;isolation:isolate;overflow:hidden}
.motion .service-card::before{content:'';position:absolute;left:0;right:0;bottom:0;height:115%;z-index:-1;background:linear-gradient(180deg,#D3EAFB,#E6F5FF);transform:translateY(100%);transition:transform 1s cubic-bezier(.2,.7,.2,1);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='24'%3E%3Cpath d='M0 12Q50 0 100 12T200 12V24H0Z'/%3E%3C/svg%3E") 0 0/200px 24px repeat-x,linear-gradient(#000,#000) 0 23px/100% 100% no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='24'%3E%3Cpath d='M0 12Q50 0 100 12T200 12V24H0Z'/%3E%3C/svg%3E") 0 0/200px 24px repeat-x,linear-gradient(#000,#000) 0 23px/100% 100% no-repeat;
  animation:card-wave 3.2s linear infinite}
.motion .service-card:hover::before,.motion .service-card:focus-within::before{transform:translateY(40%)}
@keyframes card-wave{to{-webkit-mask-position:200px 0,0 23px;mask-position:200px 0,0 23px}}

/* A drop falls, the surface ripples outward */
.quote-ornament .drop{position:relative;width:40px;height:40px;z-index:1;--fall:-210px}
.quote-ornament .drop::before{content:'';position:absolute;inset:0;background:#fff;border-radius:0 50% 50% 50%;transform:rotate(45deg)}
.motion .quote-ornament .drop{animation:drop-fall 6s cubic-bezier(.55,0,.8,.3) infinite}
@keyframes drop-fall{0%{transform:translateY(var(--fall)) scale(.7);opacity:0}6%{opacity:1}13%{transform:translateY(0) scale(1);opacity:1}15%{transform:translateY(6px) scale(1.6,.35);opacity:.55}18%,100%{transform:translateY(6px) scale(2,.1);opacity:0}}
.motion .quote-ornament .rings{animation:ring-out 6s cubic-bezier(.15,.6,.3,1) infinite both}
.motion .quote-ornament .ring1{animation-delay:.8s}.motion .quote-ornament .ring2{animation-delay:1.25s}.motion .quote-ornament .ring3{animation-delay:1.7s}.motion .quote-ornament .ring4{animation-delay:2.15s}
@keyframes ring-out{0%{transform:translate(-50%,-50%) scale(.1);opacity:0}8%{opacity:.95}65%{opacity:.25}100%{transform:translate(-50%,-50%) scale(1.15);opacity:0}}

/* Breathing ripple symbols */
.motion .process-symbol circle,.motion .water-orbit circle{transform-box:fill-box;transform-origin:center;animation:breathe 6s ease-in-out infinite}
.motion .process-symbol circle:nth-of-type(2),.motion .water-orbit circle:nth-of-type(2){animation-delay:-2s}
.motion .process-symbol circle:nth-of-type(3){animation-delay:-4s}
.motion .process-symbol path,.motion .water-orbit path{animation:bob 6s ease-in-out infinite}
@keyframes breathe{0%,100%{transform:scale(.94);opacity:.55}50%{transform:scale(1.05);opacity:1}}
@keyframes bob{50%{transform:translateY(-5px)}}
.grant-icon{font-size:0;color:var(--blue-text)}
.grant-icon svg{width:132px;display:block}
.grant-icon .rip{transform-box:fill-box;transform-origin:center}
.motion .grant-icon .rip{animation:rip 4.5s cubic-bezier(.15,.6,.3,1) infinite both}
.motion .grant-icon .rip:nth-of-type(1){animation-delay:.75s}.motion .grant-icon .rip:nth-of-type(2){animation-delay:1.05s}.motion .grant-icon .rip:nth-of-type(3){animation-delay:1.35s}
.motion .grant-icon .gdrop{animation:gdrop 4.5s cubic-bezier(.55,0,.8,.3) infinite}
@keyframes rip{0%{transform:scale(.2);opacity:0}12%{opacity:1}100%{transform:scale(1.2);opacity:0}}
@keyframes gdrop{0%{transform:translateY(-14px);opacity:0}8%{opacity:1}16%{transform:translateY(14px);opacity:1}20%,100%{transform:translateY(18px);opacity:0}}
.audience-icon{font-size:0;opacity:.32;width:96px}
.audience-icon svg{width:100%;display:block}
.motion .announcement-dot{animation:ping 2.6s ease-out infinite}
@keyframes ping{0%{box-shadow:0 0 0 0 rgba(0,198,235,.7)}100%{box-shadow:0 0 0 9px rgba(0,198,235,0)}}

/* Water moving through the product illustrations */
.motion .unit-illustration path[stroke-width="3"]{stroke-dasharray:7 9;animation:flow 1.4s linear infinite}
.motion .unit-illustration path[stroke-width="10"]{stroke-dasharray:14 9;animation:flow-up 1.9s linear infinite}
.motion .unit-illustration rect[rx="3"]{animation:tds 3.2s ease-in-out infinite}
@keyframes flow{to{stroke-dashoffset:-32}}
@keyframes flow-up{to{stroke-dashoffset:-46}}
@keyframes tds{50%{opacity:.55}}
.tiny-wave{font-size:0;width:240px;color:#38A8F5}
.tiny-wave svg{width:100%;height:72px;display:block;overflow:hidden}
.motion .tiny-wave .tw{animation:tw 4s linear infinite}
.tiny-wave .tw2{opacity:.7}.tiny-wave .tw3{opacity:.45}
.motion .tiny-wave .tw2{animation-duration:5.5s}.motion .tiny-wave .tw3{animation-duration:7.5s}
@keyframes tw{to{transform:translateX(-100px)}}

/* Pause control: looping motion must be pausable (WCAG 2.2.2) */
.motion-toggle{display:none;position:fixed;left:18px;bottom:18px;z-index:45;align-items:center;gap:9px;height:40px;padding:0 16px 0 13px;border-radius:999px;border:1px solid #CFE0EE;background:rgba(246,249,252,.94);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#0B2D6B;font:700 12px/1 'Montserrat',sans-serif;letter-spacing:.04em;box-shadow:0 6px 24px rgba(11,45,107,.12);cursor:pointer}
.js:not(.reduced) .motion-toggle{display:inline-flex}
.motion-toggle[hidden]{display:none!important}
.motion-toggle:focus-visible{outline:3px solid #0069CC;outline-offset:3px}
.mt-icon{width:10px;height:12px;border-left:3px solid currentColor;border-right:3px solid currentColor;box-sizing:border-box}
.motion-toggle.is-paused .mt-icon{width:0;height:0;border-right:0;border-left:10px solid currentColor;border-top:6px solid transparent;border-bottom:6px solid transparent}
.motion-paused *,.motion-paused *::before,.motion-paused *::after{animation-play-state:paused!important}

@media(max-width:600px){
  .brand img{width:206px}
  .site-header.scrolled .header-inner{min-height:60px}
  .quote-ornament .drop{width:28px;height:28px;--fall:-96px}
  .grant-icon svg{width:92px}
  .audience-icon{width:72px}
  .motion-toggle{bottom:calc(80px + env(safe-area-inset-bottom));left:12px;width:40px;padding:0;justify-content:center}
  .motion-toggle .mt-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
}
/* Montserrat sets wider than the previous face: keep the hero headline to three lines */
.hero h1{font-size:clamp(50px,5.5vw,90px);max-width:720px}
@media(max-width:1180px){.brand img{width:250px}}
@media(max-width:600px){.hero h1{font-size:clamp(44px,12.5vw,64px)}.brand img{width:206px}}
/* Pause control stays a small circle; its label slides out on hover or keyboard focus */
.motion-toggle{width:40px;padding:0;justify-content:center;gap:0;overflow:hidden;transition:width .35s cubic-bezier(.2,.7,.2,1),padding .35s}
.motion-toggle .mt-label{max-width:0;opacity:0;white-space:nowrap;transition:max-width .35s,opacity .25s}
@media(hover:hover){.motion-toggle:hover,.motion-toggle:focus-visible{width:auto;padding:0 16px 0 14px;gap:9px}.motion-toggle:hover .mt-label,.motion-toggle:focus-visible .mt-label{max-width:120px;opacity:1}}
@media(max-width:600px){.announcement-dot{display:none}}

/* ---------- Scroll story: from your tap to your glass ---------- */
#inside,#finder,#grant{scroll-margin-top:80px}
.story .section-title-row,.finder .section-title-row{display:grid;grid-template-columns:1.25fr .75fr;align-items:end;gap:35px;margin:38px 0 10px}
.story-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:70px;margin-top:40px}
.story-sticky{position:sticky;top:120px}
.story-svg{width:100%;height:auto;display:block;max-height:calc(100vh - 230px)}
.sg-pipe{fill:none;stroke:#D5E6F6;stroke-width:12;stroke-linecap:round;stroke-linejoin:round}
.sg-flow{fill:none;stroke:#0077E6;stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:9 13;opacity:.4}
.sg-drain-bg{fill:none;stroke:#E4E9EF;stroke-width:8;stroke-linecap:round;stroke-linejoin:round}
.sg-drain-flow{fill:none;stroke:#8A9BB0;stroke-width:3;stroke-linecap:round;stroke-dasharray:8 12;opacity:0;transition:opacity .6s}
.reach-3 .sg-drain-flow{opacity:.8}
.sg-body{fill:rgba(255,255,255,.72);stroke:#AFC4D8;stroke-width:2;transition:fill .6s,stroke .6s,filter .6s}
.sg-cap{fill:#E7EEF5;stroke:#AFC4D8;stroke-width:2;transition:stroke .6s}
.sg-leaf{stroke:#C9D8E6;stroke-width:1.5;fill:none}
.sg-badge{fill:#fff;stroke:#AFC4D8;stroke-width:2;transition:fill .5s,stroke .5s}
.sg-num{font:700 13px 'Montserrat',sans-serif;fill:#4A5A70;text-anchor:middle;transition:fill .5s}
.sg-label{font:600 12px 'DM Sans',sans-serif;fill:#4A5A70}
.sg-tankwater{fill:url(#sgWater);transform-box:fill-box;transform-origin:50% 100%;transform:scaleY(.14);transition:transform 1.6s cubic-bezier(.2,.7,.2,1)}
.reach-4 .sg-tankwater{transform:scaleY(.74)}
.sg-tap{fill:none;stroke:#9FB2C6;stroke-width:9;stroke-linecap:round;stroke-linejoin:round}
.sg-tapbase{fill:#9FB2C6}
.sg-glass{fill:none;stroke:#7F95AC;stroke-width:2;stroke-linejoin:round}
.sg-glasswater{fill:#CFE8FA;opacity:.8}
.reach-1 [data-stage="1"] .sg-body,.reach-2 [data-stage="2"] .sg-body,.reach-3 [data-stage="3"] .sg-body,.reach-4 [data-stage="4"] .sg-body,.reach-5 [data-stage="5"] .sg-body{stroke:#0077E6;fill:rgba(230,245,255,.78)}
.reach-1 [data-stage="1"] .sg-cap,.reach-2 [data-stage="2"] .sg-cap,.reach-3 [data-stage="3"] .sg-cap{stroke:#0077E6}
.reach-1 [data-stage="1"] .sg-badge,.reach-2 [data-stage="2"] .sg-badge,.reach-3 [data-stage="3"] .sg-badge,.reach-4 [data-stage="4"] .sg-badge,.reach-5 [data-stage="5"] .sg-badge{fill:#0069CC;stroke:#0069CC}
.reach-1 [data-stage="1"] .sg-num,.reach-2 [data-stage="2"] .sg-num,.reach-3 [data-stage="3"] .sg-num,.reach-4 [data-stage="4"] .sg-num,.reach-5 [data-stage="5"] .sg-num{fill:#fff}
.cur-1 [data-stage="1"] .sg-body,.cur-2 [data-stage="2"] .sg-body,.cur-3 [data-stage="3"] .sg-body,.cur-4 [data-stage="4"] .sg-body,.cur-5 [data-stage="5"] .sg-body{filter:drop-shadow(0 0 10px rgba(0,119,230,.45))}
.reach-5 .sg-glasswater{fill:#BFE6FB;opacity:1}
.motion .sg-flow{animation:sg-flow .9s linear infinite}
.motion .sg-drain-flow{animation:sg-flow 1.1s linear infinite}
@keyframes sg-flow{to{stroke-dashoffset:-22}}
.story-legend{list-style:none;display:flex;flex-wrap:wrap;gap:8px 22px;padding:0;margin:20px 0 0;font-size:14px;color:var(--text-muted)}
.story-legend li{display:flex;align-items:center;gap:8px}
.story-legend i{width:10px;height:10px;border-radius:50%;flex:none}
.story-legend b{font-weight:700;color:#0B2D6B;transition:color .4s}
.story-legend li.is-done b{color:#0069CC}
.story-steps{list-style:none;margin:0;padding:0}
.story-step{min-height:62vh;display:flex;flex-direction:column;justify-content:center;padding:20px 0 20px 30px;border-left:2px solid #D6E3EF;transition:border-color .5s}
.story-step:first-child{min-height:44vh;justify-content:flex-start}
.story-step:last-child{min-height:56vh}
.story-step.is-active{border-color:#0077E6}
.story-num{font:700 12px 'Montserrat',sans-serif;letter-spacing:.16em;text-transform:uppercase;color:var(--blue-text)}
.story-step h3{font:700 clamp(24px,2.3vw,32px)/1.2 'Montserrat',sans-serif;letter-spacing:-.025em;color:#0B2D6B;margin:12px 0 12px;transition:color .5s}
.story-step p{font-size:var(--fs-body);line-height:1.8;color:var(--text-muted);margin:0;max-width:440px}

/* ---------- System finder ---------- */
.finder{background:#E6F5FF}
.finder-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px;align-items:start}
.finder-intro h2{font-family:'Montserrat',sans-serif;font-size:clamp(40px,4.6vw,68px);line-height:1.12;letter-spacing:-.05em;font-weight:600;color:#0B2D6B;margin:32px 0 20px}
.finder-intro h2 em{font-style:normal;color:#0065C4}
.finder-intro p{font-size:var(--fs-body);line-height:1.8;color:var(--text-muted);max-width:380px}
.finder-card{background:#fff;border-radius:6px;padding:34px 38px 36px;box-shadow:0 30px 60px rgba(11,45,107,.1);min-height:420px}
.finder-progress{height:4px;background:#E2ECF5;border-radius:4px;overflow:hidden;margin-bottom:18px}
.finder-progress span{display:block;height:100%;background:linear-gradient(90deg,#0069CC,#00C6EB);transform-origin:left;transform:scaleX(0);transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.finder-count{font:700 12px 'Montserrat',sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);margin:0 0 8px}
.fq{border:0;margin:0;padding:0;min-width:0}
.fq legend{font:700 clamp(22px,2vw,27px)/1.25 'Montserrat',sans-serif;letter-spacing:-.02em;color:#0B2D6B;margin:0 0 22px;padding:0}
.fq legend:focus{outline:none}
.fq-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(175px,1fr));gap:12px}
.fq-opt{position:relative;cursor:pointer;display:block}
.fq-opt input{position:absolute;opacity:0;width:1px;height:1px}
.fq-opt span{display:flex;flex-direction:column;gap:5px;min-height:96px;justify-content:center;padding:16px 18px;border:1.5px solid #D3E0EC;border-radius:6px;background:#F8FBFE;transition:border-color .25s,background .25s,transform .25s,box-shadow .25s}
.fq-opt b{font:700 17px 'Montserrat',sans-serif;color:#0B2D6B}
.fq-opt small{font-size:14px;line-height:1.45;color:var(--text-muted)}
.fq-opt:hover span{border-color:#7FB5EA;transform:translateY(-2px)}
.fq-opt input:checked+span{border-color:#0069CC;background:#E6F5FF;box-shadow:0 0 0 3px rgba(0,105,204,.15)}
.fq-opt input:focus-visible+span{outline:3px solid #0069CC;outline-offset:3px}
.finder-nav{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:26px}
.finder-back{background:none;border:0;font:700 14px 'Montserrat',sans-serif;color:#0B2D6B;padding:12px 0;cursor:pointer}
.finder-next{margin-left:auto;border:0}
.finder-next:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}
.finder-result:focus{outline:none}
.finder-eyebrow{font:700 12px 'Montserrat',sans-serif;letter-spacing:.16em;color:var(--blue-text)}
.finder-art{height:180px;display:grid;place-items:center;background:#EEF6FD;border-radius:6px;margin:14px 0 22px;color:#2F7FCB}
.finder-art svg{height:160px;width:auto;max-width:100%}
.finder-result h3{font:700 clamp(26px,2.4vw,32px)/1.2 'Montserrat',sans-serif;letter-spacing:-.03em;color:#0B2D6B;margin:0 0 10px}
.finder-why{font-size:var(--fs-body);line-height:1.75;color:var(--text-muted);margin:0 0 16px}
.finder-grant{background:#F1F8FF;border-left:3px solid #0077E6;padding:12px 16px;font-size:15px;line-height:1.6;color:#0B2D6B;margin:0 0 6px}
.finder-grant a{color:#0065C4;text-decoration:underline}
.finder-actions{display:flex;flex-wrap:wrap;gap:16px 24px;align-items:center;margin-top:22px}
.finder-form{background:none;border:0;border-bottom:1px solid currentColor;padding:4px 0;font:700 14px 'Montserrat',sans-serif;color:#0B2D6B;cursor:pointer}
.finder-restart{background:none;border:0;padding:4px 0;font:600 14px 'DM Sans',sans-serif;color:var(--text-muted);text-decoration:underline;cursor:pointer}
.finder-back:focus-visible,.finder-form:focus-visible,.finder-restart:focus-visible{outline:3px solid #0069CC;outline-offset:4px}
.motion .fq:not([hidden]){animation:fq-in .5s cubic-bezier(.2,.7,.2,1)}
@keyframes fq-in{from{opacity:0;transform:translateX(24px)}}
.motion .finder-result:not([hidden]){animation:ink-open 1s cubic-bezier(.2,.7,.2,1)}
@keyframes ink-open{from{clip-path:circle(0% at 50% 25%)}to{clip-path:circle(150% at 50% 25%)}}

@media(max-width:850px){
  .story .section-title-row,.finder .section-title-row{grid-template-columns:1fr;gap:15px}
  .story-grid{grid-template-columns:1fr;gap:0}
  .story-stage{position:sticky;top:66px;z-index:3;margin:0 -32px;padding:12px 32px 16px;background:linear-gradient(#F6F9FC 88%,rgba(246,249,252,0))}
  .story-sticky{position:static}
  .story-svg{max-height:34vh;margin:0 auto}
  .story-legend{font-size:12px;gap:6px 14px;margin-top:10px}
  .story-step{min-height:58vh;padding-left:22px}
  .story-step:first-child{min-height:30vh;padding-top:30px}
  .finder-grid{grid-template-columns:1fr;gap:30px}
}
@media(max-width:600px){
  .story-stage{margin:0 -20px;padding:10px 20px 14px;top:60px}
  .finder-card{padding:24px 20px 26px;min-height:0}
  .fq-opt span{min-height:76px}
  .finder-actions .btn{width:100%}
}

/* ---------- Systems showcase: good / better / best / business ---------- */
.systems-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.system-tier{position:absolute;top:16px;right:16px;font:700 12px/1 'Montserrat',sans-serif;letter-spacing:.08em;text-transform:uppercase;padding:8px 11px;border-radius:999px;background:#fff;color:#0B2D6B;box-shadow:0 4px 14px rgba(11,45,107,.1)}
.tier-best .system-tier{background:#0B2D6B;color:#fff}
.tier-business .system-tier{background:#0069CC;color:#fff}
.tier-best{border-color:#0565C5;box-shadow:0 18px 40px rgba(11,45,107,.10)}
.system-content h3{font-size:22px}
.system-content p{margin-bottom:18px}
.system-points{list-style:none;margin:0 0 22px;padding:0;display:grid;gap:10px}
.system-points li{display:flex;gap:10px;align-items:flex-start;font-size:15px;line-height:1.5;color:#1D2F4F}
.system-points svg{width:16px;height:16px;flex:none;margin-top:3px;color:#0069CC}
.system-price{margin:auto 0 18px;padding-top:16px;border-top:1px solid #DCE5EE;display:flex;flex-direction:column;gap:4px}
.system-price span{font-size:13px;color:var(--text-muted)}
.system-price strong{font:700 26px/1.15 'Montserrat',sans-serif;letter-spacing:-.03em;color:#0B2D6B}
.tier-business .system-price strong{font-size:19px;line-height:1.3}
.system-choose{margin-top:0}
@media(max-width:1180px){.systems-grid{grid-template-columns:1fr 1fr}.system-card:last-child{grid-column:auto}}
@media(max-width:600px){.systems-grid{grid-template-columns:1fr}}

/* ---------- Tier cards: fitted model and spec chips ---------- */
.system-model{margin:-4px 0 12px !important;font:700 14px/1.4 'Montserrat',sans-serif;color:#0B2D6B}
.system-model span{display:block;font:600 12px/1.4 'DM Sans',sans-serif;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin-bottom:2px}
.system-specs{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:0 0 16px;padding:0}
.system-specs li{font-size:12.5px;line-height:1;padding:7px 9px;border-radius:999px;background:#EAF3FB;color:#0B2D6B;border:1px solid #D3E3F2}
.system-visual{height:240px}
.system-visual .unit-illustration{width:92%;max-width:330px;height:auto}
/* ---------- Design review fixes ---------- */
/* Audience header matches the other sections' two-column heading, and sits closer to the services above it. */
.audience{padding-top:40px}
.audience .section-title-row{display:grid;grid-template-columns:1.25fr .75fr;align-items:end;gap:35px;margin:38px 0 10px}
/* Grant reads as a contained, deliberate panel rather than a floating icon. */
.grant{background:linear-gradient(135deg,#EAF4FC,#F7FAFE);border:1px solid #D6E6F4;border-radius:8px;padding:70px 80px;margin-top:90px;margin-bottom:90px}
.grant-icon svg{width:170px}
@media(max-width:850px){.audience .section-title-row{grid-template-columns:1fr;gap:15px}.grant{padding:48px 40px;margin-top:60px;margin-bottom:60px}}
@media(max-width:600px){.audience{padding-top:20px}.grant{padding:34px 22px;margin-top:40px;margin-bottom:40px}.grant-icon svg{width:96px}}

/* ---------- Official product photos and parts strip ---------- */
.system-visual .system-photo{height:86%;width:auto;max-width:92%;object-fit:contain;mix-blend-mode:multiply;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.system-card:hover .system-photo{transform:scale(1.04)}
.finder-art img{height:160px;width:auto;mix-blend-mode:multiply}
.parts-strip{display:grid;grid-template-columns:.9fr 2.1fr;gap:40px;align-items:center;margin-top:28px;padding:30px 34px;background:#fff;border:1px solid #D6E2EE;border-radius:6px}
.parts-head h3{font:700 22px/1.25 'Montserrat',sans-serif;letter-spacing:-.03em;color:#0B2D6B;margin:0 0 10px}
.parts-head p{font-size:15px;line-height:1.7;color:var(--text-muted);margin:0 0 16px}
.parts-head .service-link{max-width:230px}
.parts-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}
.parts-list li{display:flex;flex-direction:column;gap:4px;text-align:center}
.part-img{display:grid;place-items:center;aspect-ratio:1;background:#F2F7FC;border-radius:6px;margin-bottom:6px;overflow:hidden}
.part-img img{width:84%;height:84%;object-fit:contain;mix-blend-mode:multiply;transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.parts-list li:hover .part-img img{transform:scale(1.06)}
.parts-list strong{font:700 13px/1.35 'Montserrat',sans-serif;color:#0B2D6B}
.parts-list small{font-size:12px;color:var(--text-muted);letter-spacing:.04em}
@media(max-width:1180px){.parts-strip{grid-template-columns:1fr;gap:22px}.parts-list{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:600px){.parts-strip{padding:22px 18px}.parts-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Photos sit below the card label and tier badge. */
.system-visual:has(.system-photo){padding:50px 0 14px;align-items:flex-end}
.system-visual .system-photo{height:100%;max-height:176px}

/* ---------- Enquiry form (own backend) ---------- */
.next-steps{margin-top:40px}
.next-steps ol{margin:14px 0 0;padding:0;list-style:none;counter-reset:step;display:grid;gap:14px;max-width:420px}
.next-steps li{counter-increment:step;display:grid;grid-template-columns:34px 1fr;gap:12px;color:#BFC9D6;line-height:1.6;font-size:var(--fs-body)}
.next-steps li::before{content:counter(step);display:grid;place-items:center;width:34px;height:34px;border-radius:50%;border:1px solid rgba(0,198,235,.6);color:#00C6EB;font:700 14px 'Montserrat',sans-serif}
.next-steps strong{color:#fff;font-weight:700}
.form-hint{font-size:13px;line-height:1.5;color:var(--text-muted);margin:-4px 0 12px}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.consent a{text-decoration:underline}
.form-submit:disabled{opacity:.6;cursor:progress;transform:none}
.form-feedback{margin-top:14px;font-size:15px;line-height:1.5;font-weight:600}
.form-feedback.is-success{color:#0B6E3A}
.form-feedback.is-error{color:#B3261E}
.finder-continue{border:0}
