/* Ensure the demo toolbar CTA keeps its dark text on the pale brand button. */
.demo-toolbar .toolbar-cta{color:#24281f}
/* Page-specific refinement layer for the Northline Plumbing demonstration. */
.nl-brand,.nl-brand:visited{color:var(--ink)}
.nl-brand small{font-size:9px}
.nl-ribbon{font-size:9px}
.feature-kicker,.nl-eyebrow{font-size:10px}
.toolbar-label{font-size:10px}
.nl-brand:hover,.nl-nav a:hover,.nl-footer nav a:hover{color:var(--moss)}
.nl-skip{position:absolute;top:-100px;left:12px;z-index:20;background:var(--ink);color:white;padding:12px 16px}
.nl-skip:focus{top:8px}
.nl-nav a,.nl-footer a,.nl-button,.nl-text-link,.nl-secondary-link{transition:color .18s ease,background-color .18s ease,border-color .18s ease,transform .18s ease}
.nl-hero-actions{display:flex;align-items:center;gap:24px;flex-wrap:wrap}
.nl-secondary-link,.nl-text-link{display:inline-flex;align-items:center;gap:12px;color:#3f4b38;text-decoration:none;font-size:12px;font-weight:600}
.nl-secondary-link{padding:12px 0;border-bottom:1px solid #9da591}
.nl-secondary-link:hover,.nl-text-link:hover{text-decoration:underline;text-underline-offset:4px}
.nl-hero-meta{margin-top:42px;font-size:10px;gap:32px;color:#696d62}
.nl-home-hero{grid-template-columns:minmax(0,1fr) minmax(340px,.78fr);gap:4% 6%;align-items:center;padding-top:47px;padding-bottom:30px}
.nl-home-hero .nl-hero-content{padding-top:0}
.nl-home-hero .nl-hero-art{min-height:390px;padding:13px;background:#dcd9cf}
.art-drawing{height:342px;position:relative;overflow:hidden;background:linear-gradient(145deg,#e9e6dc,#d4d1c6)}
.art-drawing:before,.art-drawing:after{content:"";position:absolute;border:1px solid #aeb2a2;pointer-events:none}
.art-drawing:before{left:7%;right:7%;top:12%;bottom:13%;border-left:0;border-bottom:0}
.art-drawing:after{left:7%;width:35%;bottom:13%;height:15%;border-right:0;border-top:0}
.art-sun{right:17%;top:11%;width:32%;background:#c9a27e;opacity:.78}
.pipe{background:transparent;z-index:2}
.pipe-one{right:25%;top:22%;height:39%;width:13%;border:10px solid #5b654f;border-bottom:0;border-radius:55px 55px 0 0}
.pipe-two{right:25%;top:60%;width:35%;height:12%;border:10px solid #5b654f;border-left:0;border-radius:0 38px 38px 0}
.pipe-three{right:53%;top:47%;width:14%;height:12%;border:9px solid #b88157;border-right:0;border-radius:34px 0 0 34px}
.pipe-four{right:46%;top:71%;width:9%;height:12%;border:8px solid #8b927a;border-top:0;border-right:0;border-radius:0 0 0 20px}
.pipe-joint{position:absolute;z-index:3;right:22%;top:57%;width:17px;height:17px;border-radius:50%;background:#d5b18e;border:3px solid #5b654f}
.pipe-valve{position:absolute;z-index:3;right:22%;top:22%;height:24px;width:3px;background:#b88157}
.pipe-valve:before,.pipe-valve:after{content:"";position:absolute;background:#b88157}
.pipe-valve:before{height:3px;width:21px;left:-9px;top:2px}
.pipe-valve:after{height:18px;width:3px;left:0;top:-5px}
.pipe-water{position:absolute;left:19%;top:25%;width:2px;height:73px;background:#9aa58a;transform:rotate(-18deg)}
.pipe-water:after{content:"";position:absolute;width:5px;height:5px;background:#9aa58a;border-radius:50%;bottom:-7px;left:-2px}
.art-label{position:absolute;z-index:4;left:9%;bottom:18%;font:italic 21px/1.12 Georgia,serif;color:#374231}
.art-coordinate{right:8%;bottom:7%;font-size:9px;letter-spacing:.1em;color:#60675b}
.art-caption{height:35px;display:flex;justify-content:space-between;align-items:end;padding:0 2px;font:9px 'DM Mono',monospace;letter-spacing:.08em;color:#66695f}
.nl-service-ribbon{grid-column:1/-1;display:grid;grid-template-columns:170px repeat(4,minmax(0,1fr));align-items:center;margin-top:5px;border-top:1px solid #d5d2c9;border-bottom:1px solid #d5d2c9;min-height:61px}
.nl-service-ribbon>span{font:10px 'DM Mono',monospace;letter-spacing:.08em;color:#64695e}
.nl-service-ribbon>a{min-height:60px;padding:10px 14px;border-left:1px solid #d5d2c9;display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px;font-weight:600;color:#34392f}
.nl-service-ribbon>a:hover{background:#e9e6dd;color:#384532}
.nl-service-ribbon b{font-size:14px;color:#8c684a}
.nl-intro-block{padding:62px clamp(20px,10vw,145px);display:grid;grid-template-columns:.9fr 1.1fr;gap:9%;align-items:start;border-bottom:1px solid #d9d6ce}
.nl-intro-block h2,.nl-steps-heading h2,.nl-home-cta h2,.nl-about-story h2,.nl-about-cta h2,.nl-contact-aside h2{font:500 clamp(32px,4vw,48px)/1.08 Georgia,serif;letter-spacing:-.035em;margin:16px 0 0}
.nl-intro-block p,.nl-about-story p{font-size:15px;line-height:1.8;color:#62665c;max-width:590px;margin:0 0 16px}
.nl-service-section{padding:74px clamp(20px,9vw,130px);display:grid;grid-template-columns:.72fr 1.28fr;gap:8%;background:#e9e6dd}
.nl-service-heading h2{font:500 clamp(34px,4.3vw,52px)/1.04 Georgia,serif;letter-spacing:-.04em;margin:18px 0}
.nl-service-heading h2 em{color:#8f694a;font-weight:400}
.nl-service-heading>p{font-size:14px;line-height:1.75;color:#62665c;max-width:350px}
.nl-service-heading .nl-text-link{margin-top:10px}
.nl-service-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.nl-service-card{min-height:214px;padding:19px 20px 17px;background:#f8f6ef;border:1px solid #d3d0c6;color:var(--ink);text-decoration:none;display:flex;flex-direction:column;transition:transform .2s,border-color .2s,box-shadow .2s}
.nl-service-card:hover{transform:translateY(-3px);border-color:#a5aa99;box-shadow:0 9px 24px #2529210d}
.service-card-top{display:flex;justify-content:space-between;align-items:center}
.service-card-top small,.service-card-link{font:10px 'DM Mono',monospace;letter-spacing:.06em;color:#65695e}
.service-card-top i{font:normal 19px Georgia;color:#9a704f;width:32px;height:32px;display:grid;place-items:center;border:1px solid #c8c0b0;border-radius:50%}
.nl-service-card h3{font:500 22px/1.15 Georgia,serif;margin:18px 0 7px}
.nl-service-card p{font-size:13px;line-height:1.6;color:#63675d;margin:0;max-width:320px}
.service-card-link{margin-top:auto;padding-top:15px;color:#4d5a43}
.service-card-link b{float:right;color:#9a704f;font-size:13px}
.nl-steps-section{padding:60px clamp(20px,9vw,130px) 66px;background:#fbfaf6}
.nl-steps-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:28px}
.nl-steps-heading h2{font-size:38px}
.nl-steps{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #d4d2c8}
.nl-steps article{padding:20px 22px 4px 0;border-right:1px solid #d4d2c8;margin-right:22px}
.nl-steps article:last-child{border-right:0;margin-right:0}
.nl-steps article>span,.principle-grid article>span{font:11px 'DM Mono',monospace;color:#92704e}
.nl-steps h3,.principle-grid h3{font:500 20px Georgia,serif;margin:22px 0 9px}
.nl-steps p,.principle-grid p{font-size:13px;line-height:1.7;color:#66695f;margin:0;max-width:310px}
.nl-home-cta{padding:56px clamp(20px,9vw,130px) 62px;background:var(--moss);color:var(--cream)}
.nl-home-cta .feature-kicker{color:#e1e2d8}
.nl-home-cta h2{font-size:45px;margin:15px 0 11px}
.nl-home-cta>p{font-size:14px;color:#e2e2d9;line-height:1.65;max-width:560px}
.nl-home-cta .nl-button-light{margin-top:8px}
.nl-page-hero{padding:65px clamp(20px,10vw,145px) 61px;background:#e9e6dd}
.nl-page-hero h1{max-width:850px;font:500 clamp(44px,6vw,72px)/1.02 Georgia,serif;letter-spacing:-.045em;margin:24px 0 15px}
.nl-page-hero>p{max-width:620px;font-size:16px;line-height:1.75;color:#63675d;margin:0 0 20px}
.nl-about-hero{display:grid;grid-template-columns:1fr 270px;gap:9%;align-items:center;min-height:350px;background:#e9e6dd}
.nl-about-stamp{min-height:224px;padding:22px;border:1px solid #aaad9f;background:linear-gradient(145deg,#dedbd0,#f2f0e9);display:flex;flex-direction:column;justify-content:space-between;color:#4f5c45}
.nl-about-stamp>span,.nl-about-stamp small{font:10px 'DM Mono',monospace;letter-spacing:.1em}
.nl-about-stamp>b{font:500 88px/.8 Georgia,serif;color:#59614c;text-align:center}
.nl-about-stamp>b span{color:#b88157;font-size:46px}
.nl-about-stamp small{font-size:9px;color:#676a60}
.nl-about-story{padding:68px clamp(20px,10vw,145px);display:grid;grid-template-columns:.55fr 1fr;gap:9%;background:#f8f6ef}
.nl-about-story h2{margin:0 0 19px}
.nl-about-story p+p{margin-top:12px}
.nl-about-principles{padding:55px clamp(20px,10vw,145px) 62px;background:#dcd9cf}
.principle-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px;margin-top:23px}
.principle-grid article{padding:19px 20px 4px 0;border-top:1px solid #bdbdb1}
.nl-about-cta{padding:44px clamp(20px,10vw,145px);background:var(--moss);color:var(--cream);display:flex;justify-content:space-between;align-items:center;gap:24px}
.nl-about-cta .feature-kicker{color:#e1e2d8}.nl-about-cta h2{font-size:36px;margin-top:12px}
.nl-services-hero{padding-bottom:51px;background:#f3f0e9}
.nl-services-hero .nl-button{margin-top:7px}
.nl-service-detail-grid{padding:0 clamp(20px,10vw,145px) 62px;display:grid;grid-template-columns:1fr 1fr;background:#f3f0e9}
.nl-service-detail{padding:28px 34px 29px 0;border-top:1px solid #d5d2c9;margin-right:34px}
.nl-service-detail:nth-child(2n){padding-right:0;margin-right:0;padding-left:34px;border-left:1px solid #d5d2c9}
.service-detail-meta{display:flex;justify-content:space-between;align-items:center;font:10px 'DM Mono',monospace;letter-spacing:.08em;color:#686b61}
.service-detail-meta i{width:37px;height:37px;display:grid;place-items:center;border:1px solid #c5bdae;border-radius:50%;font:normal 19px Georgia;color:#9a704f}
.nl-service-detail h2{font:500 clamp(24px,3vw,34px)/1.12 Georgia,serif;margin:23px 0 11px}
.nl-service-detail>p{font-size:14px;line-height:1.7;color:#63675d;max-width:510px}
.nl-service-detail .service-context{font-size:13px;border-left:2px solid #c4c7b8;padding-left:14px;margin-top:18px}
.nl-service-detail .nl-text-link{margin-top:9px}
.nl-service-note{padding:42px clamp(20px,10vw,145px);background:var(--moss);color:var(--cream);display:grid;grid-template-columns:.8fr 1.2fr auto;align-items:center;gap:28px}
.nl-service-note .feature-kicker{color:#e1e2d8}
.nl-service-note p{font-size:13px;line-height:1.7;color:#e3e4dc;max-width:560px}
.nl-area-hero{display:grid;grid-template-columns:1fr auto;align-items:center;gap:32px;background:#f3f0e9}
.nl-page-hero .areas-disclosure{font-size:12px;color:#64685e}
.nl-areas-content{padding:58px clamp(20px,10vw,145px);display:grid;grid-template-columns:1.1fr .9fr;gap:9%;align-items:center;background:#e5e2d8}
.nl-area-map{height:370px;position:relative;overflow:hidden;background:#d4d5ca;border:1px solid #c1c2b7;background-image:linear-gradient(90deg,transparent 49.8%,#c3c7bc 50%,transparent 50.4%),linear-gradient(0deg,transparent 49.8%,#c3c7bc 50%,transparent 50.4%)}
.map-label{position:absolute;left:18px;top:17px;font:10px 'DM Mono',monospace;letter-spacing:.1em;color:#5e665b}
.map-core{position:absolute;left:47%;top:50%;transform:translate(-50%,-50%);padding:12px 14px;background:#566047;color:#f3f0e9;border-radius:50%;font:10px 'DM Mono',monospace;letter-spacing:.06em}
.map-node{position:absolute;z-index:2;padding:7px 9px;background:#f3f0e9;border:1px solid #adb3a3;color:#3b4436;font:9px 'DM Mono',monospace;letter-spacing:.05em}
.node-brunswick{left:32%;top:31%}.node-coburg{left:54%;top:19%}.node-northcote{left:57%;top:60%}.node-preston{left:75%;top:39%}.node-carlton{left:22%;top:61%}.node-fitzroy{left:32%;top:77%}
.map-line{position:absolute;height:2px;background:#9ba48d;transform-origin:left center}
.map-line-a{left:30%;top:42%;width:54%;transform:rotate(-17deg)}.map-line-b{left:26%;top:65%;width:50%;transform:rotate(-10deg)}.map-line-c{left:40%;top:28%;width:53%;transform:rotate(40deg)}
.nl-area-list h2{font:500 40px/1.07 Georgia,serif;margin:15px 0}
.nl-area-list>p{font-size:14px;line-height:1.7;color:#65695f;max-width:390px}
.nl-area-list ul{list-style:none;margin:21px 0 20px;padding:0;display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #c4c4b9}
.nl-area-list li{padding:11px 3px;border-bottom:1px solid #c4c4b9;font-size:13px;display:flex;justify-content:space-between}
.nl-area-list li span{color:#92704e}
.nl-area-note{padding:19px clamp(20px,10vw,145px);display:flex;justify-content:space-between;align-items:center;gap:20px;background:#f8f6ef;font:10px 'DM Mono',monospace;letter-spacing:.06em;color:#60665a}
.nl-area-note a{font-weight:600;color:#344030}.nl-area-note b{color:#9a704f;margin-left:10px}
.nl-contact-hero{padding-bottom:36px;background:#e9e6dd}
.nl-contact-hero h1{max-width:730px}
.nl-contact-layout{padding:0 clamp(20px,10vw,145px) 75px;display:grid;grid-template-columns:.75fr 1fr;gap:12%;background:#e9e6dd}
.nl-contact-aside{padding-top:15px}
.nl-contact-aside h2{font-size:41px;margin:16px 0}
.nl-contact-aside>p{font-size:14px;line-height:1.8;color:#60655a;max-width:420px}
.contact-next{margin-top:35px;padding:20px 21px;border:1px solid #c3c3b6;background:#f0eee7}
.contact-next>span{font:10px 'DM Mono',monospace;letter-spacing:.08em;color:#59614c}
.contact-next ol{list-style:none;counter-reset:next;margin:17px 0 0;padding:0}
.contact-next li{counter-increment:next;padding:9px 0;border-top:1px solid #d6d3ca;font-size:13px}
.contact-next li:before{content:"0" counter(next) " / ";font:10px 'DM Mono',monospace;color:#92704e;margin-right:7px}
.demo-privacy{font-size:11px!important;color:#4e5547!important}
.nl-contact-form{padding:28px 31px 26px;background:#f9f7f1;border:1px solid #d3d0c6;display:grid;gap:8px}
.form-heading{padding-bottom:13px;border-bottom:1px solid #d5d2c9;margin-bottom:6px}
.form-heading>span{font:10px 'DM Mono',monospace;letter-spacing:.09em;color:#66695f}
.form-heading h2{font:500 27px Georgia,serif;margin:12px 0 0}
.nl-contact-form label,.nl-form-section label{font:12px 'DM Mono',monospace;margin-top:8px;color:#353a32}
.nl-contact-form label span,.nl-form-section label span{color:#955e3e}
.nl-contact-form input,.nl-contact-form select,.nl-contact-form textarea{width:100%;min-height:47px;border:1px solid #b9b9ae;background:#fffefa;padding:12px 13px;color:var(--ink);font:15px Arial,sans-serif;border-radius:0}
.nl-contact-form textarea{min-height:132px;resize:vertical;line-height:1.5}
.nl-contact-form input:focus,.nl-contact-form select:focus,.nl-contact-form textarea:focus{outline:3px solid #758069;outline-offset:2px}
.nl-contact-form [aria-invalid=true]{border-color:#a44635;background:#fff8f5}
.nl-contact-form .form-privacy{font-size:11px;color:#4e5547;line-height:1.6;margin:6px 0}
.nl-contact-form #form-status{min-height:18px;font-size:13px;color:#344030;margin:5px 0}
.nl-footer{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;gap:15px 35px;align-items:center;padding:26px clamp(20px,7vw,105px);background:#f5f3ed}
.nl-footer .nl-brand{grid-row:1/3}
.nl-footer nav{display:flex;justify-content:flex-end;gap:22px;flex-wrap:wrap}
.nl-footer nav a{font-size:12px;color:#51574b;text-decoration:none}
.nl-footer .footer-disclosure,.nl-footer .footer-attribution{justify-self:end;font:10px 'DM Mono',monospace;letter-spacing:.06em;color:#62665c;text-decoration:none}
.nl-footer .footer-attribution{color:#3f4b38}
.nl-footer .footer-attribution b{margin-left:7px;color:#9a704f}
:focus-visible{outline:3px solid #a7724a;outline-offset:4px}
@media(max-width:1050px){.nl-service-ribbon{grid-template-columns:1fr 1fr}.nl-service-ribbon>span{grid-column:1/-1;padding:13px 12px 3px}.nl-service-ribbon>a:nth-of-type(2n){border-left:0}.nl-service-section{grid-template-columns:1fr;gap:30px}.nl-service-heading{max-width:590px}.nl-service-heading h2 br{display:block}}
@media(max-width:840px){.nl-header{padding:0 24px}.nl-nav{gap:16px}.nl-nav a{font-size:11px}.nl-footer nav{gap:14px}}
@media(max-width:700px){.nl-home-hero{grid-template-columns:1fr;padding:36px 20px 25px;gap:23px}.nl-home-hero .nl-hero-art{min-height:0}.art-drawing{height:290px}.art-caption{height:30px;font-size:8px}.nl-home-hero .nl-hero-content{padding:0}.nl-hero-actions{gap:18px}.nl-home-hero .nl-hero-meta{margin-top:28px}.nl-service-ribbon{grid-template-columns:1fr 1fr}.nl-service-ribbon>a{font-size:11px;min-height:58px;padding:9px 8px}.nl-service-ribbon>a:nth-of-type(odd){border-left:0}.nl-intro-block{padding:39px 20px;grid-template-columns:1fr;gap:18px}.nl-intro-block h2{font-size:35px}.nl-intro-block p{font-size:14px}.nl-service-section{padding:45px 20px;gap:25px}.nl-service-heading h2{font-size:39px}.nl-service-grid{gap:9px}.nl-service-card{min-height:228px;padding:14px}.nl-service-card h3{font-size:19px;margin-top:14px}.nl-service-card p{font-size:12px}.service-card-link,.service-card-top small{font-size:9px}.nl-steps-section{padding:40px 20px}.nl-steps-heading{display:block;margin-bottom:18px}.nl-steps-heading h2{font-size:34px}.nl-steps{grid-template-columns:1fr}.nl-steps article{margin:0;padding:17px 0;border-right:0;border-bottom:1px solid #d4d2c8}.nl-steps h3{margin:10px 0 5px}.nl-home-cta{padding:40px 20px}.nl-home-cta h2{font-size:36px}.nl-home-cta>p{font-size:13px}.nl-page-hero{padding:45px 20px 41px}.nl-page-hero h1{font-size:46px;margin:21px 0 14px}.nl-page-hero>p{font-size:14px}.nl-about-hero{grid-template-columns:1fr;gap:27px}.nl-about-stamp{min-height:170px;max-width:320px}.nl-about-stamp>b{font-size:65px}.nl-about-story{padding:43px 20px;grid-template-columns:1fr;gap:16px}.nl-about-story h2{font-size:36px}.nl-about-story p{font-size:14px}.nl-about-principles{padding:41px 20px}.principle-grid{grid-template-columns:1fr;gap:16px;margin-top:16px}.principle-grid article{padding:14px 0}.principle-grid h3{margin:12px 0 7px}.nl-about-cta{padding:35px 20px;display:block}.nl-about-cta h2{font-size:32px}.nl-about-cta .nl-button{margin-top:20px}.nl-service-detail-grid{padding:0 20px 42px;grid-template-columns:1fr}.nl-service-detail,.nl-service-detail:nth-child(2n){padding:22px 0;margin:0;border-left:0}.nl-service-detail h2{font-size:27px;margin:17px 0 8px}.nl-service-detail>p{font-size:13px}.nl-service-note{padding:34px 20px;grid-template-columns:1fr;gap:5px}.nl-service-note p{font-size:13px}.nl-service-note .nl-button{justify-self:start;margin-top:8px}.nl-area-hero{grid-template-columns:1fr;gap:6px}.nl-area-map{height:300px}.nl-areas-content{grid-template-columns:1fr;padding:35px 20px;gap:32px}.nl-area-list h2{font-size:35px}.nl-area-note{padding:17px 20px;align-items:flex-start;flex-direction:column;gap:12px;font-size:9px}.nl-contact-hero{padding-bottom:25px}.nl-contact-layout{padding:0 20px 45px;grid-template-columns:1fr;gap:25px}.nl-contact-aside h2{font-size:35px}.nl-contact-aside>p{font-size:13px}.contact-next{margin-top:20px}.nl-contact-form{padding:22px 18px}.nl-contact-form input,.nl-contact-form select{min-height:48px}.nl-footer{grid-template-columns:1fr;grid-template-rows:auto;gap:17px;padding:22px 20px}.nl-footer .nl-brand{grid-row:auto}.nl-footer nav{justify-content:flex-start;gap:13px 18px}.nl-footer .footer-disclosure,.nl-footer .footer-attribution{justify-self:start;font-size:9px}}
@media(max-width:360px){.nl-home-hero h1{font-size:43px}.nl-hero-meta{gap:14px;font-size:9px}.nl-secondary-link{font-size:11px}.nl-area-map{height:260px}.map-node{font-size:8px;padding:6px}.nl-footer nav{gap:12px}}
@media(prefers-reduced-motion:reduce){.nl-nav a,.nl-footer a,.nl-button,.nl-text-link,.nl-secondary-link,.nl-service-card{transition:none!important}}
