:root{color-scheme:light;--ink:#202623;--muted:#57635e;--green:#075b43;--yellow:#f5d447;--line:#d6dfd9;--wash:#eef4ef;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:#f5f6f3;color:var(--ink);font-size:16px}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0}header{background:#151a18;color:white;padding:22px max(24px,calc((100vw - 1100px)/2));display:flex;align-items:center;justify-content:space-between;gap:24px}header img{display:block;max-width:142px;height:auto}nav{display:flex;align-items:center;gap:16px;flex-wrap:wrap}nav a{color:white}nav button{background:transparent;color:white;border-color:#66736b}main{max-width:1040px;margin:40px auto;padding:0 24px;min-height:70vh}h1{font-size:clamp(2rem,5vw,3.2rem);line-height:1.12;letter-spacing:-.04em;margin:10px 0 20px}h2{font-size:1.4rem;margin:0 0 16px}p{line-height:1.6;max-width:72ch;margin:12px 0}a{color:var(--green);text-underline-offset:3px}.eyebrow{font-size:.75rem;letter-spacing:.12em;font-weight:750}.card{background:white;border:1px solid var(--line);border-radius:18px;padding:28px;margin:24px 0;box-shadow:0 4px 20px #13251a04}.narrow{max-width:590px;margin:40px auto}.muted{color:var(--muted);font-size:.92rem}.two{display:grid;grid-template-columns:1fr 1fr;gap:20px}label{display:block;font-weight:650;margin:18px 0}input,select,textarea{display:block;width:100%;border:1px solid #89978e;border-radius:8px;padding:12px;font:inherit;color:var(--ink);background:white;margin-top:7px}textarea{resize:vertical;line-height:1.5}button{font:inherit;font-weight:650;cursor:pointer;border:1px solid #98a79d;background:white;color:var(--green);border-radius:9px;padding:11px 17px;min-height:44px}button.primary{background:var(--green);color:white;border-color:var(--green)}button:hover:not(:disabled){filter:brightness(.93)}button:disabled{opacity:.55;cursor:not-allowed}.text-button{border:0;text-decoration:underline;background:transparent}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #246747;outline-offset:3px}.row{display:flex;flex-wrap:wrap;gap:12px;margin:14px 0}.heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.heading button{flex-shrink:0}.alerts{display:flex;align-items:center;justify-content:space-between;gap:24px;background:var(--wash);border:1px solid var(--line);border-radius:12px;padding:18px 24px;margin-bottom:32px}.alerts p{font-size:.92rem;margin:4px 0}.alerts .row{flex-shrink:0}.notice,#notice{padding:18px 22px;background:#fff7cf;border:1px solid #d1b63d;border-radius:10px;margin:18px 0;line-height:1.55}#notice.error{background:#fff0eb;border-color:#ba593f}fieldset{border:1px solid var(--line);border-radius:10px;padding:18px;margin:24px 0}legend{font-weight:700;padding:0 6px}.check{display:flex;gap:12px;align-items:flex-start;font-weight:500;line-height:1.5}.check input{width:20px;height:20px;flex:0 0 20px;margin:3px 0;accent-color:var(--green)}details{margin:24px 0}summary{cursor:pointer;font-weight:700;min-height:44px;padding:10px 0}.address-results{display:grid;gap:8px;margin:14px 0}.address-results button{text-align:left}.selected{font-weight:650}.jobs{display:grid;gap:16px}.job-card{border:1px solid var(--line);border-radius:14px;background:white;padding:22px}.job-card h2{margin:0 0 8px}.job-card p{margin:8px 0}.badge{font-size:.85rem;background:var(--wash);color:var(--green);padding:5px 10px;border-radius:5px;display:inline-block}.messages{max-height:380px;overflow:auto;padding:4px 0}.message{padding:14px 18px;background:var(--wash);border-radius:10px;margin:10px 0;white-space:pre-wrap;overflow-wrap:anywhere}.message small{display:block;color:var(--muted);margin-bottom:6px}.preserve{white-space:pre-wrap;overflow-wrap:anywhere}dl{display:grid;grid-template-columns:140px 1fr;gap:12px;margin:20px 0}dt{color:var(--muted)}dd{margin:0;overflow-wrap:anywhere}.price{font-size:1.8rem;font-weight:750}.route{width:100%;max-width:600px;max-height:180px;background:var(--wash);border-radius:10px}footer{padding:24px;text-align:center;background:#151a18;color:white;margin-top:64px;font-size:.9rem}footer p{margin:0 auto 10px}footer a{color:white}.skip{position:absolute;left:16px;top:-100px;background:white;padding:12px;z-index:10}.skip:focus{top:10px}@media(max-width:650px){header{padding:18px;align-items:flex-start;gap:18px}header img{width:106px}nav{gap:8px;font-size:.85rem;justify-content:flex-end}nav button{padding:8px 10px}main{padding:0 16px;margin:24px auto}.card{padding:20px;border-radius:12px}.narrow{margin:24px auto}.two{grid-template-columns:1fr;gap:0}.heading{align-items:flex-start}.heading h1{font-size:2rem}.heading button{max-width:120px}.alerts{display:block;padding:18px}.alerts .row{margin-bottom:0}dl{grid-template-columns:1fr;gap:4px}dd{margin-bottom:12px}fieldset{padding:14px}button{max-width:100%}.row>*{flex-grow:1}}

/* The existing Signal Noir app language, with room to breathe on a tablet. */
:root{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--green:#124c38;--ink:#183d2f;--wash:#edf2e8;--yellow:#ffcc25;background:#f7f7f0}
header{background:#173e30;padding:24px max(28px,calc((100vw - 1180px)/2));border-bottom:3px solid var(--yellow)}header img{width:132px}nav button{border-color:#789082;border-radius:24px}nav button#new-nav{background:#fffdf6;color:#173e30;border-color:#fffdf6}main{max-width:1180px;margin:34px auto}h1{font-weight:800;letter-spacing:-.045em}h2{font-weight:800;letter-spacing:-.025em}.eyebrow,.section-number{font-weight:750;letter-spacing:.12em;font-size:.7rem}.card{border-color:#dce3d8;box-shadow:none;border-radius:20px;padding:30px}.primary{box-shadow:0 4px 0 #123c2e10}button{border-radius:12px;transition:background .15s,transform .15s}button:active:not(:disabled){transform:translateY(1px)}.heading{margin-bottom:12px}.heading h2{font-size:1.9rem;margin:8px 0}.alerts{margin-bottom:26px;background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:0 0 20px}.alerts p{font-size:.82rem;max-width:67ch}.alerts strong{font-size:.87rem}.alerts button{font-size:.85rem;min-height:40px}.signin-layout{display:grid;grid-template-columns:1.02fr 1fr;min-height:615px;background:#fffefa;border:1px solid #dde3d8;border-radius:28px;overflow:hidden;margin:34px 0;box-shadow:0 20px 65px #153b2e0b}.welcome-art{position:relative;background:#183f31;padding:42px;color:#fffdf5;overflow:hidden}.welcome-art:after{content:'';position:absolute;right:-160px;bottom:-240px;width:650px;height:650px;border:1px solid #ffffff13;border-radius:50%;pointer-events:none}.welcome-art h1{font-size:clamp(2.7rem,4vw,3.7rem);margin:26px 0 18px;position:relative;z-index:1}.welcome-art p:not(.eyebrow){font-size:1.05rem;color:#e0e8db}.welcome-norb{position:absolute;width:260px;height:auto;right:10px;bottom:50px;object-fit:contain;filter:drop-shadow(0 16px 20px #0002)}.welcome-footnote{position:absolute;bottom:30px;left:42px;font-size:.85rem;color:#e3eada}.signin-content{padding:60px 48px;align-self:center}.signin-content h2{font-size:1.9rem;margin:15px 0}.signin-content>p{font-size:.94rem}.section-number{color:#52624d}.signin-content label{font-size:.88rem}.signin-content input{background:#fff;border-color:#bbc8b9;border-radius:11px;min-height:50px}.signin-content .primary{min-width:145px}.signin-content .primary span{margin-left:30px}.signin-content .muted{font-size:.8rem;margin-top:28px}.dashboard-hero{background:#e9efdf;border:1px solid #dce5d3;border-radius:24px;padding:34px 42px;display:flex;justify-content:space-between;align-items:center;margin:0 0 38px;overflow:hidden;min-height:285px}.dashboard-hero h1{font-size:2.7rem;margin:12px 0 14px}.dashboard-hero p{font-size:.95rem;color:#50634e}.dashboard-hero img{object-fit:contain;width:235px;height:260px;margin-right:38px}.dashboard-hero .primary{margin-top:8px}.dashboard-hero .primary span{margin-left:22px}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:28px 0 20px}.service-tile{padding:0;overflow:hidden;border:1px solid #d8dfd1;background:#fffef7;border-radius:19px;text-align:left;min-width:0;box-shadow:0 4px 15px #193e2d04;transition:border-color .15s,box-shadow .15s}.service-tile:hover:not(:disabled){filter:none;border-color:#799275;box-shadow:0 7px 22px #193e2d0d}.service-tile[aria-pressed=true]{border:2px solid #18513b;box-shadow:0 0 0 2px #18513b15}.service-tile img{width:100%;height:210px;object-fit:contain;display:block;padding:16px 20px 6px}.service-caption{display:flex;justify-content:space-between;align-items:center;gap:8px;background:#edf2e6;padding:17px 20px;font-size:1rem;font-weight:750;min-height:62px}.service-arrow{font-size:1.25rem;font-weight:500}.all-services{display:block;margin:24px auto;border-radius:30px;padding:12px 26px;background:transparent;font-size:.9rem}.privacy-note{text-align:center;max-width:none;font-size:.82rem;color:#5b6d58;margin:20px 0 36px}.privacy-note span{color:#647345;margin-right:6px}#request-form{scroll-margin-top:24px}#request-form:before{content:'THE DETAILS';display:block;font-size:.7rem;letter-spacing:.14em;color:#52624d;font-weight:750;margin-bottom:12px}.job-card{position:relative;padding:25px 25px 25px 140px;min-height:155px;background:#fffef9;border-radius:18px}.job-art{position:absolute;left:22px;top:26px;object-fit:contain;width:96px;height:96px}.job-card button{position:absolute;right:24px;bottom:24px}.job-card h2{font-size:1.2rem;padding-right:100px}.job-card .muted{font-size:.8rem;padding-right:100px}.jobs>p{padding:36px;border:1px dashed #b6c4ad;border-radius:18px;background:#fffdf6;color:#61715b}.badge{font-size:.75rem;border:1px solid #dae4d4;border-radius:20px}.messages .message{max-width:82%}#proposal{border-top:4px solid #19573e}.price{color:#164b35;font-weight:800}.check{font-size:.94rem}footer{background:#173e30}.signin-layout+section{margin-top:32px}
@media(min-width:1500px){main{margin-top:44px}.service-tile img{height:230px}}
@media(max-width:900px){.signin-content{padding:38px 30px}.welcome-art{padding:34px}.welcome-art h1{font-size:2.8rem}.welcome-norb{width:230px;bottom:65px}.welcome-footnote{left:34px;right:24px;font-size:.76rem}.service-grid{gap:14px}.service-tile img{height:180px;padding:12px}.service-caption{padding:14px;font-size:.88rem}.dashboard-hero{padding:28px}.dashboard-hero img{margin-right:0;width:200px;height:230px}.dashboard-hero h1{font-size:2.35rem}}
@media(max-width:650px){header{padding:18px 16px}header img{width:104px}main{margin:24px auto}.signin-layout{grid-template-columns:1fr;margin:20px 0;border-radius:20px}.welcome-art{min-height:310px;padding:26px}.welcome-art .eyebrow{font-size:.62rem}.welcome-art h1{font-size:2.6rem;max-width:280px;margin:20px 0 12px}.welcome-art p:not(.eyebrow){font-size:.88rem;max-width:180px}.welcome-norb{width:143px;right:2px;bottom:22px}.welcome-footnote{font-size:.65rem;left:26px;bottom:20px;max-width:185px}.signin-content{padding:32px 26px}.signin-content h2{font-size:1.65rem}.dashboard-hero{padding:24px 20px;min-height:260px;position:relative}.dashboard-hero h1{font-size:2.1rem;position:relative;z-index:1}.dashboard-hero .eyebrow{font-size:.58rem;max-width:230px}.dashboard-hero p:not(.eyebrow){font-size:.85rem;max-width:190px}.dashboard-hero img{position:absolute;right:0;bottom:35px;width:135px;height:150px}.dashboard-hero .primary{font-size:.85rem;position:relative;z-index:1}.service-grid{grid-template-columns:repeat(2,1fr);gap:12px;margin-top:24px}.service-tile{border-radius:13px}.service-tile img{height:150px;padding:10px 6px 0}.service-caption{font-size:.8rem;padding:12px 10px;min-height:58px}.service-arrow{font-size:1rem}.card{padding:22px 18px}.job-card{padding:20px 18px 20px 98px}.job-art{width:66px;height:80px;left:16px;top:20px}.job-card h2{font-size:1rem;padding-right:0}.job-card button{position:static;margin-top:12px;font-size:.85rem}.job-card .muted{padding-right:0}.messages .message{max-width:100%}.privacy-note{font-size:.75rem}.alerts{margin-bottom:24px}.heading button{font-size:.8rem}.heading h2{font-size:1.65rem}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

@media(max-width:650px){header{position:relative;min-height:124px;padding:18px 16px 70px}header nav{position:absolute;left:16px;right:16px;bottom:14px;justify-content:flex-start;gap:12px}header nav #logout{position:absolute;right:0;bottom:56px}header nav a{margin-left:auto}header nav button{font-size:.82rem;padding:8px 14px}header:has(#jobs-nav[hidden]){min-height:76px;padding-bottom:18px}header:has(#jobs-nav[hidden]) nav{left:auto;top:18px;bottom:auto}}

/* Compact desktop discovery; retain the existing touch layout on smaller screens. */
@media(min-width:901px){
 .service-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
 .service-tile{border-radius:13px}
 .service-tile img{height:130px;padding:10px 12px 4px}
 .service-caption{min-height:52px;padding:12px;font-size:.875rem}
 .service-arrow{font-size:1rem}
}
@media(min-width:1000px){
 .service-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
 .service-tile img{height:112px}
}
.professional-summary{background:var(--wash);border:1px solid var(--line);border-radius:12px;padding:18px 22px;margin:16px 0 24px;overflow-wrap:anywhere}
.professional-summary h3{font-size:.8rem;font-weight:700;margin:0 0 8px;color:var(--muted)}
.professional-summary .professional-name{font-size:1.18rem;font-weight:750;margin:6px 0}
.professional-summary p{margin:8px 0}.professional-summary details{margin:8px 0 0}.professional-summary summary{font-size:.9rem}

/* Nine services per page. Preserve readable names; allow vertical scrolling at large text sizes. */
#explore,#service-discovery{max-width:850px;margin-inline:auto;padding-bottom:100px}
.service-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:stretch;margin:20px 0}
.service-tile{display:flex;flex-direction:column;text-align:center;background:#fffef9;border-radius:14px}
.service-tile img{height:136px;width:100%;object-fit:contain;padding:8px 8px 0}
.service-caption{display:block;background:transparent;padding:10px 8px 4px;min-height:0;font-size:1rem;line-height:1.25;overflow-wrap:anywhere}
.coverage-status{display:block;color:#47604e;font-size:.875rem;line-height:1.35;padding:4px 8px 12px;margin-top:auto}
.no-coverage{background:#eff0ec;border-color:#d0d3cc}.no-coverage img{filter:grayscale(1);opacity:.65}.no-coverage .coverage-status{color:#536052}
.coverage-location{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.coverage-location p{font-weight:650;overflow-wrap:anywhere;margin:0}
.catalogue-controls{position:sticky;bottom:0;z-index:5;background:#fffef9;border:1px solid #ccd6ca;border-radius:14px;padding:10px 14px calc(10px + env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:space-between;gap:12px;box-shadow:0 -6px 16px #163b2110}
.catalogue-pager{display:flex;align-items:center;gap:12px}.catalogue-pager span{text-align:center;line-height:1.4}.catalogue-controls a{min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}.catalogue-pager button{min-width:44px}
#coverage-feedback{min-height:1.5em}#new-intro{max-width:64ch}#coverage-address-panel,#coverage-unavailable{scroll-margin-top:20px}
@media(max-width:650px){.service-grid{gap:9px}.service-tile img{height:88px;padding:7px 4px 0}.service-caption{font-size:1rem;padding:8px 5px 3px}.coverage-status{font-size:.8125rem;padding:4px 5px 10px}.catalogue-controls{padding-inline:10px;gap:8px}.catalogue-pager{gap:8px}.catalogue-pager span{font-size:.875rem}#explore,#service-discovery{padding-bottom:30px}#new-view>.heading h1{font-size:1.75rem}}
@media(max-width:340px){.service-grid{gap:6px}.catalogue-controls{flex-wrap:wrap;justify-content:center}.service-caption{overflow-wrap:anywhere}}
.catalogue-controls{position:fixed;left:50%;transform:translateX(-50%);width:calc(100% - 32px);max-width:850px;bottom:0}
.large-catalogue-text .service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.largest-catalogue-text .service-grid{grid-template-columns:1fr}
.large-catalogue-text .catalogue-controls{flex-wrap:wrap;justify-content:center}.large-catalogue-text .catalogue-pager{flex:1;justify-content:space-between}
@media(max-width:650px){header,header:has(#jobs-nav[hidden]){position:static;display:flex;flex-wrap:wrap;align-items:center;min-height:0;padding:14px 16px;gap:12px}header nav,header:has(#jobs-nav[hidden]) nav{position:static;display:flex;flex-wrap:wrap;gap:10px;flex:1;justify-content:flex-end}header nav #logout{position:static}header nav button{max-width:none}header nav a{margin-left:0}.large-catalogue-text header nav{flex-basis:100%;justify-content:flex-start}.large-catalogue-text .heading{flex-wrap:wrap}.large-catalogue-text .heading button{max-width:none}}

/* Compact the catalogue context without changing artwork, text or touch sizes. */
@media(max-width:650px){
 header,header:has(#jobs-nav[hidden]){padding:8px 16px;gap:8px}
 header nav,header:has(#jobs-nav[hidden]) nav{gap:2px 6px}
 header nav button{padding:8px 10px}
 main:has(#new-view:not([hidden])),main:has(#explore:not([hidden])){margin-top:12px}
 #new-view>.heading{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 10px;margin-bottom:4px;align-items:center}
 #new-view>.heading>div{display:contents}
 #new-view>.heading .eyebrow{grid-column:1;grid-row:1;margin:0;line-height:1.4}
 #new-view>.heading .back-jobs{grid-column:2;grid-row:1;max-width:none;padding:8px 10px}
 #new-view>.heading h1{grid-column:1/-1;grid-row:2;margin:2px 0 4px}
 #new-intro{margin:4px 0 8px;line-height:1.4}
 .coverage-location{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}
 .coverage-location p{line-height:1.4}
 #coverage-change{padding:6px 8px;max-width:128px;line-height:1.35}
 #coverage-explanation{margin:6px 0 8px;line-height:1.4}
 #service-grid,#explore-grid{margin-top:8px}
 #explore>.eyebrow{margin:0 0 4px}
 #explore>h1{margin:4px 0 8px}
 #explore>p{margin:6px 0;line-height:1.4}
 .large-catalogue-text #new-view>.heading{grid-template-columns:1fr}
 .large-catalogue-text #new-view>.heading .back-jobs{grid-column:1;grid-row:3;justify-self:start}
 .large-catalogue-text .coverage-location{grid-template-columns:1fr}
 .large-catalogue-text #coverage-change{max-width:none;justify-self:start}
}
