
@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700;800&family=Playfair+Display:wght@600;700&display=swap');
:root{--ink:#102b35;--paper:#f7f6f0;--mist:#e7ede8;--teal:#106b67;--lime:#d1e85a;--clay:#d66a45;--line:#c9d4ce;--muted:#587078;--white:#fffdf8;--shadow:0 18px 45px rgba(16,43,53,.13)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 Manrope,Arial,sans-serif}a{color:inherit}a:focus-visible,button:focus-visible{outline:3px solid var(--clay);outline-offset:3px}.skip{position:absolute;left:-999px;top:auto}.skip:focus{left:1rem;top:1rem;z-index:30;background:var(--white);padding:.6rem 1rem}.shell{width:min(1140px,calc(100% - 2.2rem));margin:auto}.announcement{background:var(--ink);color:#eef5ed;font:500 .73rem/1.4 'DM Mono',monospace;letter-spacing:.07em;text-transform:uppercase;padding:.6rem 0}.announcement .shell{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}.site-header{position:sticky;top:0;z-index:20;background:rgba(247,246,240,.96);backdrop-filter:blur(12px);border-bottom:1px solid rgba(16,43,53,.08)}.nav{min-height:75px;display:flex;justify-content:space-between;align-items:center;gap:1rem}.brand{font-weight:800;text-decoration:none;line-height:1.05;letter-spacing:-.04em;font-size:1.05rem;max-width:170px}.brand span{display:block;color:var(--teal);font:500 .58rem/1.2 'DM Mono',monospace;letter-spacing:.12em;text-transform:uppercase;margin-top:.3rem}.nav-links{display:flex;align-items:center;gap:.3rem}.nav-links a,.menu summary{padding:.55rem .65rem;text-decoration:none;border-radius:4px;font-weight:700;font-size:.84rem;cursor:pointer}.menu{position:relative}.menu summary{list-style:none}.menu summary::-webkit-details-marker{display:none}.menu summary::after{content:'+';font-size:1.1rem;margin-left:.25rem;color:var(--teal)}.menu[open] summary::after{content:'–'}.dropdown{position:absolute;top:2.6rem;left:0;width:245px;max-height:340px;overflow:auto;background:var(--white);border:1px solid var(--line);box-shadow:var(--shadow);padding:.5rem}.dropdown a{display:block;padding:.5rem}.nav-cta,.button{display:inline-flex;justify-content:center;align-items:center;gap:.45rem;background:var(--teal);color:white;border:0;border-radius:0;padding:.77rem 1rem;text-decoration:none;font-weight:800;font-size:.82rem;letter-spacing:.01em}.nav-cta:hover,.button:hover{background:var(--ink)}.mobile-toggle{display:none}.hero{padding:clamp(4rem,9vw,8rem) 0 4rem;background:linear-gradient(125deg,var(--ink) 0 55%,#174f4e 55%);color:var(--white);overflow:hidden;position:relative}.hero:after{content:'';position:absolute;width:42vw;height:42vw;right:-16vw;top:-10vw;border:1px solid rgba(209,232,90,.35);border-radius:50%;box-shadow:0 0 0 42px rgba(209,232,90,.08),0 0 0 84px rgba(209,232,90,.06)}.hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(250px,.8fr);gap:3rem;align-items:end}.eyebrow{font:500 .72rem/1.3 'DM Mono',monospace;text-transform:uppercase;letter-spacing:.12em;color:var(--lime);margin:0 0 1rem}.hero h1,.page-hero h1{font:700 clamp(2.8rem,6vw,5.8rem)/.98 'Playfair Display',Georgia,serif;letter-spacing:-.055em;margin:0;max-width:820px}.hero p.lead{max-width:600px;font-size:1.1rem;margin:1.4rem 0 1.8rem;color:#dae8df}.hero-card{border-left:1px solid rgba(255,255,255,.35);padding-left:1.5rem}.hero-card strong{display:block;font:700 2.8rem/1 'Playfair Display',serif;color:var(--lime)}.hero-card p{font-size:.92rem;color:#d4e1da}.section{padding:clamp(3.5rem,7vw,6.3rem) 0}.section.alt{background:var(--mist)}.section.dark{background:var(--ink);color:var(--white)}.section-kicker{font:500 .7rem/1.4 'DM Mono',monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--teal);margin:0 0 .8rem}.dark .section-kicker{color:var(--lime)}h2{font:700 clamp(2rem,4.2vw,3.7rem)/1.05 'Playfair Display',Georgia,serif;letter-spacing:-.045em;margin:0;max-width:720px}h3{font-size:1.15rem;line-height:1.25;margin:.6rem 0}.section-intro{max-width:700px;color:var(--muted);margin:1rem 0 2.2rem}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.card{position:relative;display:flex;flex-direction:column;min-height:215px;background:var(--white);padding:1.45rem;border:1px solid rgba(16,43,53,.08);box-shadow:0 3px 0 rgba(16,43,53,.035);text-decoration:none;transition:transform .18s ease,box-shadow .18s ease}.card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}.card .tag{font:500 .66rem 'DM Mono',monospace;text-transform:uppercase;letter-spacing:.1em;color:var(--teal)}.card p{font-size:.9rem;color:var(--muted);margin:.2rem 0 1.2rem}.card .arrow{margin-top:auto;color:var(--teal);font-weight:800}.feature-strip{display:grid;grid-template-columns:1.1fr .9fr;gap:2rem;align-items:center}.stat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.25)}.stat{padding:1.45rem;background:rgba(255,255,255,.06)}.stat strong{display:block;font:700 2.2rem/1 'Playfair Display',serif;color:var(--lime)}.stat span{font-size:.78rem;color:#d7e6de}.page-hero{padding:5rem 0 3.5rem;background:var(--ink);color:var(--white)}.page-hero .breadcrumb{font:500 .72rem/1.4 'DM Mono',monospace;color:var(--lime);text-transform:uppercase;letter-spacing:.1em;margin-bottom:1.2rem}.page-hero .lead{font-size:1.08rem;color:#d7e6de;max-width:700px;margin:1.25rem 0 0}.detail-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:3rem}.prose p{color:var(--muted);max-width:700px}.checklist{padding:0;margin:1.3rem 0;list-style:none}.checklist li{border-top:1px solid var(--line);padding:.85rem 0;font-weight:700}.checklist li:before{content:'↗';color:var(--teal);margin-right:.65rem}.aside{background:var(--mist);padding:1.5rem;align-self:start}.aside h2{font-size:1.8rem}.aside a{color:var(--teal);font-weight:800}.contact-band{background:var(--clay);color:white;padding:3rem 0}.contact-band .shell{display:flex;justify-content:space-between;gap:1.5rem;align-items:center}.contact-band h2{font-size:clamp(1.9rem,4vw,3rem)}.contact-band .button{background:var(--ink)}.site-footer{background:#092028;color:#d8e4dc;padding:3rem 0 1.4rem}.footer-grid{display:grid;grid-template-columns:1.25fr repeat(3,1fr);gap:2rem}.site-footer h2{font-size:1.1rem;font-family:Manrope,sans-serif;letter-spacing:0}.site-footer a{display:block;color:#d8e4dc;text-decoration:none;font-size:.88rem;margin:.4rem 0}.site-footer a:hover{text-decoration:underline}.legal{border-top:1px solid rgba(255,255,255,.2);margin-top:2rem;padding-top:1rem;color:#a9c1b6;font-size:.75rem;display:flex;gap:1rem;justify-content:space-between;flex-wrap:wrap}@media (max-width:850px){.nav{min-height:65px}.mobile-toggle{display:block;border:0;background:none;color:var(--ink);font-weight:800}.nav-links{display:none;position:absolute;left:0;right:0;top:65px;padding:1rem;background:var(--paper);border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch}.nav-links.show{display:flex}.dropdown{position:static;width:auto;box-shadow:none;background:transparent;border:0}.hero-grid,.feature-strip,.detail-grid{grid-template-columns:1fr}.hero-card{display:none}.grid{grid-template-columns:repeat(2,1fr)}.footer-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:540px){.announcement .shell{font-size:.6rem}.grid{grid-template-columns:1fr}.hero{padding-top:3.5rem}.contact-band .shell{display:block}.contact-band .button{margin-top:1rem}.footer-grid{grid-template-columns:1fr}.nav-cta{display:none}}
.rr-form-section{background:var(--mist);padding:clamp(3.5rem,7vw,5rem) 0;border-top:1px solid var(--line)}.rr-form-shell{max-width:820px;margin:auto;background:var(--white);padding:clamp(1.4rem,4vw,2.5rem);border:1px solid var(--line);box-shadow:var(--shadow)}.rr-form-shell h2{font-size:clamp(1.8rem,3.5vw,2.8rem)}.rr-form-shell p{max-width:600px;color:var(--muted);margin:1rem 0 1.5rem}.rr-form-section .rr-form-embed{min-height:80px}
.process-list{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-top:2rem}.process-step{border-top:3px solid var(--teal);padding:1rem;background:var(--white)}.process-step strong{display:block;font:500 .7rem 'DM Mono',monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--teal)}.process-step span{display:block;font-weight:700;line-height:1.35;margin-top:.5rem}.context-links{display:flex;flex-wrap:wrap;gap:.7rem;padding:0;margin:1.5rem 0 0;list-style:none}.context-links a{display:block;padding:.7rem .85rem;background:var(--white);border:1px solid var(--line);font-weight:800;text-decoration:none}.faq-list{margin-top:2rem}.faq-list details{background:var(--white);border-top:1px solid var(--line);padding:1rem 1.1rem}.faq-list summary{cursor:pointer;font-weight:800}.faq-list p{color:var(--muted);max-width:760px;margin:.85rem 0 .1rem}@media(max-width:850px){.process-list{grid-template-columns:repeat(2,1fr)}}@media(max-width:540px){.process-list{grid-template-columns:1fr}}
.scope-section{background:var(--paper)}.priority-list{list-style:none;padding:0;margin:1.4rem 0 0}.priority-list li{padding:.72rem 0;border-top:1px solid var(--line);font-weight:700}.priority-list li:before{content:'•';color:var(--teal);margin-right:.65rem}.expectation-section .prose,.next-step-section .prose{max-width:780px}.next-step-section{background:var(--ink);color:var(--white)}.next-step-section .section-kicker{color:var(--lime)}.next-step-section .prose p{color:#d7e6de}
.why-section .section-intro,.process-home-section .section-intro{max-width:760px}.why-grid,.home-process-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin-top:2rem}.why-grid article,.home-process-grid article{background:var(--white);border:1px solid var(--line);padding:1.35rem}.why-grid h3,.home-process-grid h3{margin-top:0}.why-grid p,.home-process-grid p{color:var(--muted);font-size:.92rem;margin-bottom:0}@media(max-width:640px){.why-grid,.home-process-grid{grid-template-columns:1fr}}
.hero-slideshow{position:absolute;inset:0;overflow:hidden}.hero-slideshow:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,29,37,.88),rgba(6,29,37,.58) 58%,rgba(6,29,37,.35))}.hero-slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;opacity:0;transform:translateX(100%);transition:transform .8s ease,opacity .8s ease}.hero-slide.is-active{opacity:1;transform:translateX(0)}.hero-slide.is-leaving{opacity:0;transform:translateX(-12%)}.hero-slide-toggle{position:absolute;z-index:3;right:1.1rem;bottom:1.1rem;border:1px solid rgba(255,255,255,.7);background:rgba(9,32,40,.72);color:#fff;padding:.48rem .7rem;font:500 .65rem 'DM Mono',monospace;letter-spacing:.06em;text-transform:uppercase;cursor:pointer}.page-hero.has-photo,.page-hero.has-slider{position:relative;overflow:hidden;min-height:390px;display:flex;align-items:end}.page-hero.has-photo:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,29,37,.88),rgba(6,29,37,.45))}.page-hero-media{position:absolute;inset:0}.page-hero-media img{width:100%;height:100%;object-fit:cover;object-position:center}.page-hero.has-photo .shell,.page-hero.has-slider .shell{position:relative;z-index:1}@media(prefers-reduced-motion:reduce){.hero-slide{transition:none}.hero-slide:not(.is-active){display:none}}@media(max-width:540px){.hero-slide-toggle{right:.8rem;bottom:.8rem}.page-hero.has-photo,.page-hero.has-slider{min-height:330px}}
/* Homepage revision: centered hierarchy with a readable, responsive measure. */
[data-home-section] .shell{text-align:center}[data-home-section] h1,[data-home-section] h2,[data-home-section] .section-kicker,[data-home-section] .eyebrow,[data-home-section] .section-intro,[data-home-section] .prose>p,[data-home-section] .hero p.lead,[data-home-section] .hero-card,[data-home-section] .home-process-grid article,[data-home-section] .checklist li,[data-home-section] .card{text-align:center}[data-home-section] h1,[data-home-section] h2,[data-home-section] .section-intro,[data-home-section] .prose>p,[data-home-section] .hero p.lead,[data-home-section="call-to-action"] p{margin-left:auto;margin-right:auto;max-width:44rem}[data-home-section] .section-intro{margin-bottom:2.2rem}[data-home-section] .prose>p{max-width:44rem}[data-home-section] .card{align-items:center}[data-home-section] .checklist{max-width:44rem;margin-left:auto;margin-right:auto}[data-home-section="call-to-action"] .shell{justify-content:center;flex-direction:column}[data-home-section="call-to-action"] .button{align-self:center}
/* Closing request section: centered introduction, then form and map on equal cards. */
.rr-form-intro{text-align:center;margin-bottom:2rem}.rr-form-intro h2,.rr-form-intro p{margin-left:auto;margin-right:auto}.rr-form-intro p{max-width:44rem;color:var(--muted)}.rr-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem;align-items:start}.rr-form-grid .rr-form-shell{max-width:none;margin:0;border-radius:14px}.rr-map-card{min-height:320px;overflow:hidden;background:var(--white);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}.rr-map-card iframe{display:block;width:100%;height:320px;border:0}@media(max-width:850px){.rr-form-grid{grid-template-columns:1fr}.rr-map-card{min-height:300px}.rr-map-card iframe{height:300px}}
/* Core service pages use the homepage's centered, readable hierarchy. */
.core-service-hero .shell,.core-service-page .shell{text-align:center}.core-service-hero h1,.core-service-hero .lead,.core-service-page h2,.core-service-page .section-intro,.core-service-page .prose>p,.core-service-page .checklist,.core-service-page .context-links{margin-left:auto;margin-right:auto;max-width:44rem}.core-service-page .card,.core-service-page .process-step,.core-service-page .checklist li,.core-service-page .faq-list{text-align:center}.core-service-page .card{align-items:center}.core-service-page .process-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;max-width:58rem;margin:2rem auto}.core-service-page .process-step{background:var(--white);border:1px solid var(--line);padding:1.25rem}.core-service-page .process-step strong,.core-service-page .process-step span{display:block}.core-service-page .cta-copy{max-width:44rem;margin-left:auto;margin-right:auto}@media(max-width:640px){.core-service-page .process-list{grid-template-columns:1fr}}
/* Retained legacy routes use the same centered, readable hierarchy as the homepage. */
.legacy-service-hero .shell,.legacy-service-page .shell{text-align:center}.legacy-service-hero h1,.legacy-service-hero .lead,.legacy-service-page h2,.legacy-service-page .section-intro,.legacy-service-page .prose>p,.legacy-service-page .checklist,.legacy-service-page .context-links,.legacy-service-page .cta-copy{margin-left:auto;margin-right:auto;max-width:44rem}.legacy-service-page .card,.legacy-service-page .process-step,.legacy-service-page .checklist li,.legacy-service-page .faq-list{text-align:center}.legacy-service-page .card{align-items:center}.legacy-service-page .process-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;max-width:58rem;margin:2rem auto}.legacy-service-page .process-step{background:var(--white);border:1px solid var(--line);padding:1.25rem}.legacy-service-page .cta-copy{color:#d7e6de}@media(max-width:640px){.legacy-service-page .process-list{grid-template-columns:1fr}}
\n/* Industry reorganization is isolated from service-page selectors. */
.industry-section .shell{text-align:center}.industry-section h2,.industry-section .prose>p{max-width:44rem;margin-left:auto;margin-right:auto}.industry-intro-grid{display:block;max-width:44rem;margin:0 auto;text-align:center}.industry-intro-grid .prose{max-width:44rem;margin:0 auto;text-align:center}.industry-intro-grid .section-kicker{margin-left:auto;margin-right:auto;text-align:center!important}.industry-intro-grid h2{margin-left:auto;margin-right:auto;text-align:center}.industry-intro-grid .prose>p:not(.section-kicker){margin-left:auto;margin-right:auto;text-align:left!important}.industry-task-list{max-width:44rem;margin:2rem auto 0;background:var(--white);padding:1.4rem;text-align:center;border:1px solid var(--line)}.industry-task-list h3{margin-top:0;text-align:center}.industry-task-list ul{list-style:disc;padding-left:1.2rem;margin:0}.industry-task-list li{padding:.45rem 0;text-align:left}.industry-services .card,.industry-section .process-step,.industry-section .faq-list{text-align:center}.industry-services .card{align-items:center}.industry-next-step{background:var(--mist)}

/* Nine-section industry pages. Same isolation contract as the block above: every
   selector is .industry-* scoped, or a shared class qualified by an .industry-*
   ancestor. Alignment follows the homepage and city-page convention (Raymond
   2026-09-15): headings and eyebrows are centered blocks with centered text;
   statement and description paragraphs are centered blocks with left-aligned
   text inside a ~44rem measure; lists stay left-aligned inside a centered block. */
.industry-hero .shell{text-align:center}.industry-hero h1{margin-left:auto;margin-right:auto}.industry-hero .lead{max-width:44rem;margin-left:auto;margin-right:auto;text-align:center}.industry-hero .hero-detail{max-width:44rem;margin:1rem auto 0;text-align:left!important;color:#d7e6de}.industry-hero-note{max-width:44rem;margin:1rem auto 0;text-align:center;font:500 .72rem/1.4 'DM Mono',monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--lime)}
.industry-section .section-kicker,.industry-section h2{max-width:44rem;margin-left:auto;margin-right:auto;text-align:center!important}
.industry-section .section-intro,.industry-section .prose>p:not(.section-kicker){max-width:44rem;margin-left:auto;margin-right:auto;text-align:left!important}
.industry-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;max-width:58rem;margin:2rem auto 0;text-align:left}
.industry-cards article{min-width:0;background:var(--white);border:1px solid var(--line);padding:1.35rem}
.industry-cards h3{margin-top:0;text-align:center}
.industry-cards p{color:var(--muted);font-size:.92rem;margin-bottom:0;text-align:left;overflow-wrap:break-word}
.industry-section .grid{max-width:58rem;margin-left:auto;margin-right:auto}
.industry-services .card{min-width:0}.industry-services .card h3{text-align:center}.industry-services .card p{text-align:left}
.industry-service-card{cursor:default}
.industry-process .process-list{grid-template-columns:repeat(2,minmax(0,1fr));max-width:58rem;margin:2rem auto 0}
.industry-process .process-step{min-width:0;background:var(--white);border:1px solid var(--line);border-top:3px solid var(--teal);padding:1.25rem;text-align:center}
.industry-process .process-step p{color:var(--muted);font-size:.92rem;margin:.6rem 0 0;text-align:left;overflow-wrap:break-word}
.industry-pricing .industry-cards{margin-top:2rem}
.industry-cta{margin:2rem auto 0;display:inline-flex}
.industry-pricing .shell:last-child,.industry-final-cta .prose{text-align:center}
.industry-final-cta{background:var(--mist)}
.industry-cta-note{max-width:44rem;margin:1rem auto 0;text-align:center;font:500 .72rem/1.5 'DM Mono',monospace;letter-spacing:.08em;color:var(--muted)}
.industry-faq .faq-list{max-width:44rem;margin:2rem auto 0;text-align:left}
.industry-faq .faq-list summary,.industry-faq .faq-list p{text-align:left;overflow-wrap:break-word}
@media(max-width:850px){.industry-cards,.industry-process .process-list{grid-template-columns:1fr}}
@media(max-width:540px){.industry-hero .hero-detail,.industry-cards p,.industry-process .process-step p{font-size:.9rem}}

/* Hero height floor: every hero is at least 700px tall and grows only when its copy
   needs more room, so nothing is ever clipped. Desktop and mobile now share this rule.
   Replaced the old fixed height:700px/max-height:700px pair on 2026-09-16: that capped the
   hero content box at 620px (700 less the 40px top/bottom padding), and pages whose H1 wrapped
   to five lines (423.4px) overflowed it, silently hiding up to 51px of copy inside the
   scrollbar-suppressed .shell. */
.hero,.page-hero,.page-hero.has-photo,.page-hero.has-slider{min-height:700px!important;height:auto!important;max-height:none;display:flex!important;align-items:center!important;padding-top:2.5rem!important;padding-bottom:2.5rem!important;overflow:hidden;position:relative}.hero>.shell,.page-hero>.shell,.hero .hero-grid{width:min(1140px,calc(100% - 2.2rem));margin-left:auto;margin-right:auto}.hero>.shell,.page-hero>.shell{position:relative;z-index:1;max-height:100%;overflow:auto;scrollbar-width:none}.hero>.shell::-webkit-scrollbar,.page-hero>.shell::-webkit-scrollbar{display:none}.page-hero-media{overflow:hidden}.page-hero-media img,.hero-slide{display:block}.hero-cta{margin-top:1.6rem}.hero .hero-cta,.page-hero .hero-cta{display:inline-flex}.hero-slide-toggle{position:absolute!important}@media(max-width:850px){.hero,.page-hero,.page-hero.has-photo,.page-hero.has-slider{height:auto!important;min-height:700px!important;max-height:none}}

/* Card-grid section headers: center the header block over the grid it introduces.
   Eyebrow and heading center-aligned; intro paragraph left-aligned inside the same
   centered readable measure. Geometry is centered, not merely text-aligned. */
.shell:has(> .grid) > .section-kicker,.shell:has(> .grid) > h2{max-width:44rem!important;margin-left:auto!important;margin-right:auto!important;text-align:center!important}
.shell:has(> .grid) > .section-intro,.shell:has(> .grid) > p:not(.section-kicker){max-width:44rem!important;margin-left:auto!important;margin-right:auto!important;text-align:left!important}

/* City / service-area pages: single centered column, centered eyebrow+heading, left-read body. */
.city-single .shell,.city-stack{display:block!important;grid-template-columns:none!important;max-width:44rem;margin-left:auto;margin-right:auto;text-align:center}.city-stack .section-kicker,.city-stack h2,.city-stack h3{text-align:center!important;margin-left:auto;margin-right:auto}.city-stack>p:not(.section-kicker),.city-stack .prose>p:not(.section-kicker),.city-stack .section-intro:not(.section-kicker){text-align:left!important;max-width:44rem;margin-left:auto;margin-right:auto}.city-stack .prose>.section-kicker,.city-stack>.section-kicker{text-align:center!important}.city-stack .checklist,.city-stack .priority-list{max-width:44rem;margin-left:auto;margin-right:auto;text-align:left}.city-stack .checklist li,.city-stack .priority-list li{text-align:left!important}.city-single aside{display:none!important}

/* Area alignment convention (Raymond 2026-09-15): every city-page section is a horizontally
   centered block. Headings and eyebrows are center-aligned inside a centered ~44rem measure;
   statement/description paragraphs keep left alignment inside that centered block. Bullets and
   task lists stay left-aligned for scanning. */
.area-aligned .prose .section-kicker,.area-aligned .shell>.section-kicker,.area-aligned .prose h2,.area-aligned>.shell>h2{max-width:44rem;margin-left:auto;margin-right:auto;text-align:center!important}
.area-aligned .prose p:not(.section-kicker){max-width:44rem;margin-left:auto;margin-right:auto;text-align:left!important}
.area-aligned .checklist,.area-aligned .priority-list,.area-aligned .context-links{max-width:44rem;margin-left:auto;margin-right:auto;text-align:left}
.area-aligned .process-list{max-width:58rem;margin-left:auto;margin-right:auto}
.area-aligned .faq-list{max-width:44rem;margin-left:auto;margin-right:auto}
.area-aligned .faq-list summary,.area-aligned .faq-list p{text-align:left}
.area-aligned .lead{text-align:left!important}

/* Hero hierarchy: single centered column with left-readable supporting copy. */
.hero-grid{display:block!important;grid-template-columns:none!important;max-width:44rem;margin:0 auto}.page-hero .shell,.hero-grid>div:first-child{text-align:center}.page-hero .hero-detail,.hero .hero-detail{text-align:left!important;max-width:44rem;margin-left:auto;margin-right:auto}

/* Hero hierarchy: keep SEO H1 and its immediate human lede centered without affecting intro copy. */
.page-hero .shell,.hero-grid>div:first-child{text-align:center}.page-hero h1,.page-hero .lead,.page-hero .hero-detail,.hero h1,.hero .lead,.hero .hero-detail{max-width:44rem;margin-left:auto;margin-right:auto;text-align:center}.page-hero .hero-detail,.hero .hero-detail{margin-top:1rem}

/* Service reorganization: scoped ordered content with an accessible scan-first task list. */
.service-reorg-hero .shell,.service-reorg-section .shell,.service-reorg-section .prose,.service-reorg-section .prose>p,.service-reorg-section .card,.service-reorg-section .card p,.service-reorg-section .card h3,.service-reorg-section .process-step,.service-reorg-section .process-step span,.service-reorg-section .faq-list,.service-reorg-section .faq-list p,.service-reorg-section .faq-list summary,.service-reorg-section .priority-list,.service-reorg-section .priority-list li,.service-reorg-section .context-links,.service-reorg-section .context-links a{text-align:center}.service-reorg-section h2,.service-reorg-section .prose>p{max-width:44rem;margin-left:auto;margin-right:auto}.service-reorg-intro-grid{display:block;max-width:44rem;margin:0 auto;text-align:center}.service-reorg-intro-grid .prose{max-width:44rem;margin:0 auto;text-align:center}.service-reorg-intro-grid .section-kicker{margin-left:auto;margin-right:auto;text-align:center!important}.service-reorg-intro-grid h2{margin-left:auto;margin-right:auto;text-align:center}.service-reorg-intro-grid .prose>p:not(.section-kicker){margin-left:auto;margin-right:auto;text-align:left!important}.service-reorg-task-list{max-width:44rem;margin:2rem auto 0;background:var(--white);border:1px solid var(--line);padding:1.4rem;text-align:center}.service-reorg-task-list h3{margin-top:0;text-align:center}.service-reorg-task-list ul,.service-reorg-task-list li{text-align:left}.service-reorg-task-list ul{margin:0;padding-left:1.2rem}.service-reorg-task-list li{padding:.45rem 0}.service-reorg-services .card{align-items:center}.service-reorg-next-step{background:var(--mist)}.area-reorg-next-step{background:var(--mist)}


/* ==========================================================================
   HOMEPAGE REBUILD (2026-09-16). Every selector here is scoped to
   [data-home-section], so service, industry and city pages are unaffected.
   Raymond's alignment convention:
     - headings and eyebrows: centered block, centered text
     - statement / description paragraphs: centered block, LEFT-aligned text, ~44rem
     - bullets and task lists: left-aligned for scanning, inside a centered block
   ========================================================================== */
[data-home-section] .shell{text-align:center}
[data-home-section] .section-kicker,[data-home-section] .eyebrow,[data-home-section] h1,[data-home-section] h2,[data-home-section] h3{text-align:center;margin-left:auto;margin-right:auto}
[data-home-section] h1,[data-home-section] h2{max-width:44rem}
[data-home-section] h3{max-width:44rem}
[data-home-section] p,[data-home-section] .section-intro,[data-home-section] .prose>p,[data-home-section] .hero p.lead{max-width:44rem;margin-left:auto;margin-right:auto;text-align:left}
/* V1 fix (2026-09-16). The paragraph rule above is (0,2,1) because of its type
   selector, so it outranked the (0,2,0) kicker rule wherever a kicker is a <p>
   inside .shell.prose (introduction, pricing, about). Raising the kicker rule to
   (0,3,1) restores the centered-eyebrow convention in ALL 11 sections without
   weakening the paragraph rule, which must keep statement copy left-aligned. */
[data-home-section] .shell p.section-kicker,[data-home-section] .shell p.eyebrow{text-align:center;margin-left:auto;margin-right:auto}
[data-home-section] .hero p.lead,[data-home-section="call-to-action"] h2{text-align:center}
[data-home-section] .trust-line{text-align:center!important;font:500 .74rem/1.5 'DM Mono',monospace;letter-spacing:.06em;color:var(--muted);margin-top:1rem}
[data-home-section="hero"] .trust-line,[data-home-section="call-to-action"] .trust-line{color:#d4e1da}
[data-home-section] .home-cta-row{text-align:center!important;margin-top:1.6rem}
[data-home-section] ul{max-width:44rem;margin-left:auto;margin-right:auto;text-align:left}
[data-home-section] li{text-align:left}

/* Hero: centered H1 + lede, left-read supporting paragraph, CTA and trust line. */
[data-home-section="hero"] .eyebrow{color:var(--lime)}
[data-home-section="hero"] .hero-detail{text-align:left;max-width:44rem;margin:1rem auto 0;color:#dae8df}
[data-home-section="hero"] .hero-cta{margin-top:1.6rem}

/* Services + Industries: equal-height problem/outcome cards. */
[data-home-section] .home-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:2.2rem;text-align:left}
[data-home-section] .home-detail-card{display:flex;flex-direction:column;background:var(--white);border:1px solid rgba(16,43,53,.1);box-shadow:0 3px 0 rgba(16,43,53,.035);padding:1.45rem;text-decoration:none;text-align:left;transition:transform .18s ease,box-shadow .18s ease}
[data-home-section] .home-detail-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
[data-home-section] .home-detail-card h3{text-align:left!important;margin:0 0 .6rem;max-width:none;font-size:1.12rem}
[data-home-section] .home-detail-card p{max-width:none;margin:0 0 .8rem;text-align:left}
[data-home-section] .home-problem{color:var(--ink);font-weight:600;font-size:.94rem}
[data-home-section] .home-solution{color:var(--muted);font-size:.9rem}
[data-home-section] .home-outcomes{list-style:none;padding:0;margin:0 0 1rem;max-width:none}
[data-home-section] .home-outcomes li{position:relative;padding:.4rem 0 .4rem 1.15rem;color:var(--muted);font-size:.89rem;border-top:1px solid var(--line)}
[data-home-section] .home-outcomes li:before{content:'→';position:absolute;left:0;color:var(--teal);font-weight:800}
[data-home-section] .home-detail-card .arrow{margin-top:auto;color:var(--teal);font-weight:800;font-size:.88rem}

/* Service areas: centered chip list, then the two reliability statements. */
[data-home-section] .home-area-list{display:flex;flex-wrap:wrap;justify-content:center;gap:.7rem;margin:2rem auto 0;max-width:52rem}
[data-home-section] .home-area-link{display:block;padding:.7rem 1.1rem;background:var(--white);border:1px solid var(--line);font-weight:800;text-decoration:none;font-size:.9rem}
[data-home-section] .home-area-link:hover{background:var(--teal);color:#fff;border-color:var(--teal)}
[data-home-section] .home-area-reliability{margin-top:2rem}
[data-home-section] .home-area-reliability p{color:var(--muted)}

/* Process: five numbered steps. */
[data-home-section] .home-step-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:2.2rem}
[data-home-section] .home-step{background:var(--white);border-top:3px solid var(--teal);padding:1.3rem;text-align:left}
[data-home-section] .home-step strong{display:block;font:500 .7rem 'DM Mono',monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--teal)}
[data-home-section] .home-step h3{text-align:left!important;margin:.55rem 0 .5rem;max-width:none;font-size:1.05rem}
[data-home-section] .home-step p{max-width:none;margin:0;color:var(--muted);font-size:.91rem}

/* Benefits and Why Choose Us. */
[data-home-section] .home-benefit-grid,[data-home-section] .home-why-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:2.2rem}
[data-home-section] .home-benefit,[data-home-section] .home-why{background:var(--white);border:1px solid var(--line);padding:1.35rem;text-align:left}
[data-home-section] .home-benefit h3,[data-home-section] .home-why h3{text-align:left!important;margin:0 0 .6rem;max-width:none;font-size:1.05rem}
[data-home-section] .home-benefit p{max-width:none;margin:0;color:var(--muted);font-size:.91rem}
[data-home-section] .home-why ul{list-style:none;padding:0;margin:0;max-width:none}
[data-home-section] .home-why li{position:relative;padding:.45rem 0 .45rem 1.15rem;color:var(--muted);font-size:.9rem;border-top:1px solid var(--line)}
[data-home-section] .home-why li:before{content:'✓';position:absolute;left:0;color:var(--teal);font-weight:800}

/* Pricing factors and About values: left-read bullets in a centered measure. */
[data-home-section] .home-factor-list,[data-home-section] .home-value-list{list-style:none;padding:0;margin:1.3rem auto 0;max-width:44rem}
[data-home-section] .home-factor-list li,[data-home-section] .home-value-list li{border-top:1px solid var(--line);padding:.8rem 0;color:var(--muted);font-size:.95rem}
[data-home-section] .home-factor-list strong,[data-home-section] .home-value-list strong{color:var(--ink)}
[data-home-section="pricing"] h3,[data-home-section="about"] h3{margin-top:2rem}

/* Call to action band. */
[data-home-section="call-to-action"] .shell{display:block;text-align:center}
[data-home-section="call-to-action"] .eyebrow{color:#fff}
[data-home-section="call-to-action"] p{color:#fff5f0}
[data-home-section="call-to-action"] .home-cta-secondary{text-align:center!important;margin-top:.9rem;font-weight:700}
[data-home-section="call-to-action"] .home-cta-secondary a{color:#fff;text-decoration:underline}
[data-home-section="call-to-action"] .button{background:var(--ink)}

@media(max-width:850px){
 [data-home-section] .home-grid,[data-home-section] .home-step-grid,[data-home-section] .home-benefit-grid,[data-home-section] .home-why-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:640px){
 [data-home-section] .home-grid,[data-home-section] .home-step-grid,[data-home-section] .home-benefit-grid,[data-home-section] .home-why-grid{grid-template-columns:1fr}
 [data-home-section] .home-area-list{gap:.5rem}
}


.svcbrief-hero .shell{text-align:center}
.svcbrief-hero h1{margin-left:auto;margin-right:auto;max-width:44rem;text-align:center}
.svcbrief-hero .svcbrief-hero-lede{max-width:44rem;margin:1.25rem auto 0;text-align:left;font-size:1.08rem;color:#d7e6de}
.svcbrief-hero .svcbrief-hero-sub{max-width:44rem;margin:1rem auto 0;text-align:left;color:#d7e6de}
.svcbrief-hero .svcbrief-hero-cta{margin:1.9rem auto 0}
.svcbrief-hero .svcbrief-hero-trust{max-width:44rem;margin:.85rem auto 0;text-align:center;font:500 .78rem/1.5 'DM Mono',monospace;letter-spacing:.04em;color:#cfe0d6}
.svcbrief-section .shell{text-align:center}
.svcbrief-section h2{max-width:44rem;margin-left:auto;margin-right:auto;text-align:center}
.svcbrief-section .svcbrief-statement{max-width:44rem;margin:1.1rem auto 0;text-align:left;color:var(--muted)}
.svcbrief-section .svcbrief-pair-list,.svcbrief-section .svcbrief-flat-list,.svcbrief-section .svcbrief-steps,.svcbrief-section .svcbrief-groups{max-width:44rem;margin:2.1rem auto 0;padding:0;list-style:none;text-align:left}
.svcbrief-section .svcbrief-pair-list li{border-top:1px solid var(--line);padding:1rem 0;text-align:left}
.svcbrief-section .svcbrief-pair-list li strong{display:block;font-size:1.02rem;line-height:1.3}
.svcbrief-section .svcbrief-pair-list li span{display:block;margin-top:.3rem;color:var(--muted);font-size:.94rem}
.svcbrief-section .svcbrief-flat-list li{border-top:1px solid var(--line);padding:.85rem 0;text-align:left;color:var(--muted)}
.svcbrief-section .svcbrief-flat-list li:before{content:'\2197';color:var(--teal);margin-right:.6rem;font-weight:800}
.svcbrief-section .svcbrief-groups{list-style:none}
.svcbrief-section .svcbrief-group{margin:0 0 1.9rem}
.svcbrief-section .svcbrief-group:last-child{margin-bottom:0}
.svcbrief-section .svcbrief-group h3{margin:0 0 .35rem;text-align:left;font:500 .74rem/1.4 'DM Mono',monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--teal)}
.svcbrief-section .svcbrief-group ul{margin:0;padding:0;list-style:none}
.svcbrief-section .svcbrief-group li{border-top:1px solid var(--line);padding:.85rem 0;text-align:left;color:var(--muted)}
.svcbrief-section .svcbrief-steps li{display:flex;gap:1rem;border-top:1px solid var(--line);padding:1rem 0;text-align:left}
.svcbrief-section .svcbrief-steps li .svcbrief-step-no{flex:0 0 auto;font:700 1.3rem/1 'Playfair Display',Georgia,serif;color:var(--teal);min-width:2rem}
.svcbrief-section .svcbrief-steps li strong{display:block;font-size:1.02rem;line-height:1.3}
.svcbrief-section .svcbrief-steps li span{display:block;margin-top:.3rem;color:var(--muted);font-size:.94rem}
.svcbrief-section .svcbrief-faq{max-width:44rem;margin:2.1rem auto 0;text-align:left}
.svcbrief-section .svcbrief-faq details{border-top:1px solid var(--line);padding:.95rem 0}
.svcbrief-section .svcbrief-faq summary{cursor:pointer;font-weight:700;text-align:left}
.svcbrief-section .svcbrief-faq p{margin:.6rem 0 0;color:var(--muted);text-align:left}
.svcbrief-section .svcbrief-included-tail{margin-top:1.6rem}
.svcbrief-section .svcbrief-cta{margin:2rem auto 0}
.svcbrief-section .svcbrief-trust{max-width:44rem;margin:1rem auto 0;text-align:center;font:500 .78rem/1.5 'DM Mono',monospace;letter-spacing:.04em;color:var(--muted)}
.svcbrief-final{background:var(--ink);color:var(--white)}
.svcbrief-final h2{color:var(--white)}
.svcbrief-final .svcbrief-statement{color:#d7e6de}
.svcbrief-final .svcbrief-trust{color:#cfe0d6}
.svcbrief-final .svcbrief-cta{background:var(--lime);color:var(--ink)}
.svcbrief-final .svcbrief-cta:hover{background:var(--white);color:var(--ink)}
@media (max-width:540px){.svcbrief-section .svcbrief-steps li{display:block}.svcbrief-section .svcbrief-steps li .svcbrief-step-no{margin-bottom:.35rem}}
