/* Faithful adaptation of the user's localhost:4180 reference, measured 2026-10-11.
   Preserve content, URLs, brand and generated assets. Variance 3 / motion 3 / density 3.
   User-selected light theme overrides automatic dual-theme defaults.
   Layers: sticky header 20, menu 30, mobile call 15. */
:root{--ink:#142421;--muted:#64706a;--soft:#f9f9f9;--line:#dce1de;--header-height:76px}
body{font-weight:350;letter-spacing:-.02em;line-height:1.75}
.quick-menu{position:fixed;right:0;bottom:26px;z-index:16;width:72px;display:flex;flex-direction:column;border:1px solid #fff;border-right:0;border-radius:12px 0 0 12px;overflow:hidden;background:#fff;box-shadow:0 8px 28px -6px #14242138,0 2px 8px #14242114}
.quick-menu[hidden]{display:none}
.quick-menu-link{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:78px;padding:12px 6px;gap:7px;border:0;border-radius:0;background:#fff;color:#142421;font-family:inherit;font-size:11px;font-weight:600;line-height:1.5;text-align:center;word-break:keep-all;cursor:pointer;text-decoration:none}
.quick-menu-link:not(:last-child){border-bottom:1px solid #e6ebe8}
.quick-menu-link svg{width:18px;height:18px;flex-shrink:0}
.quick-menu-primary{background:#142421;color:#fff}
.quick-menu-top{min-height:54px;padding:9px 6px;font-size:10px;gap:3px;letter-spacing:.06em}
.quick-menu-link:focus-visible{outline:2px solid #577a6d;outline-offset:-3px}
@media(hover:hover){.quick-menu-link:hover{background:#edf2ef}.quick-menu-primary:hover{background:#29483e}}
@media(max-width:767px){.quick-menu{left:0;right:0;bottom:0;width:100%;display:grid;grid-template-columns:1fr 1fr 56px;border:0;border-radius:0;padding-bottom:env(safe-area-inset-bottom,0px);box-shadow:0 -4px 20px #14242114}.quick-menu-link{flex-direction:row;min-height:56px;padding:12px 6px;font-size:13px}.quick-menu-link:not(:last-child){border-bottom:0;border-right:1px solid #e6ebe8}.quick-menu-top{flex-direction:column;font-size:10px;gap:2px}.quick-menu-link svg{width:17px;height:17px}body:has(.quick-menu:not([hidden])) .mobile-call{display:none}}
h1,h2,h3{font-weight:600}
.shell{width:min(1200px,calc(100% - 64px))}
.header{height:76px;transition:background .3s,color .3s}
.header-inner{height:76px;width:min(1440px,calc(100% - 64px));gap:30px}
.header nav{font-size:15px;font-weight:600;line-height:1.65;gap:clamp(12px,1.45vw,24px)}
.header nav>a:not(.button){padding:9px 0}
.header .button{min-height:38px;padding:10px 18px}
.header.scrolled,.subpage .header{border:0;box-shadow:0 8px 28px -8px #1424211f}
.brand strong{font-size:19px;font-weight:650}
.brand small{font-weight:400;letter-spacing:.105em}
.button{font-size:14px;font-weight:600;line-height:1;min-height:46px;padding:12px 24px;gap:10px;letter-spacing:normal}
.button svg{width:18px;height:18px;stroke-width:1.5}
.hero{height:100svh;min-height:650px;max-height:1080px;padding-top:76px}
.hero>.shell{width:min(1296px,100%);margin:0 auto;padding:0 24px}
.hero-copy{max-width:none;padding:160px 0 72px}
.hero h1{max-width:none;font-size:clamp(34px,4.3vw,60px);line-height:1.22;letter-spacing:-.03em;font-weight:600}
.hero .kicker{font-size:14px;line-height:1.65;font-weight:600;letter-spacing:normal;margin-bottom:15px;color:#d5ded8}
.hero .lead{font-size:15.5px;line-height:1.65;font-weight:400;letter-spacing:normal;max-width:760px;margin-top:20px;color:#e0e6e2}
.hero .actions{margin-top:28px;gap:10px}
.hero:after{background:linear-gradient(180deg,#07110da6 0%,#07110d1f 28%,#07110d2e 40%,#07110dd4 100%),linear-gradient(90deg,#07110d4d,transparent 80%)}
.section{padding:100px 0}
.section-heading{max-width:none;margin:0 auto 56px;text-align:center}
.section-heading h2{font-size:36px;line-height:1.3;letter-spacing:-.035em;text-wrap:initial}
.section-heading p{font-size:16px;line-height:1.75;max-width:760px;margin:20px auto 0}
.services-section{background:var(--soft)}
.bento{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.tile,.tile:not(:first-child){display:flex;flex-direction:column;grid-row:auto;border-radius:0;background:transparent;min-width:0}
.tile-copy{order:1;padding:24px 0 0}
.tile-copy h3{font-size:22px;line-height:1.4;letter-spacing:-.035em;font-weight:600}
.tile-copy p{font-size:16px;line-height:1.75;margin:10px 0 14px}
.tile img,.tile:first-child img,.tile:not(:first-child) img{order:0;aspect-ratio:1;width:100%;height:auto;min-height:0;max-height:none;object-fit:cover;border-radius:12px}
.tile:hover img{transform:none;filter:brightness(.96)}
.text-link{font-size:14px}
.process-section.soft{background:white}
.process{grid-template-columns:repeat(4,minmax(0,1fr));gap:32px;margin:0}
.process li{position:relative;border:0;padding:0;min-width:0}
.flow-icon{height:72px;display:flex;align-items:center;margin-bottom:28px;position:relative}
.flow-icon svg{width:42px;height:42px;stroke-width:1.4;flex-shrink:0}
.process li:not(:last-child) .flow-icon:after{content:'';position:absolute;left:68px;right:0;top:36px;height:1px;background:#dce3df}
.flow-number{display:block;font-size:16px;font-weight:500;line-height:1.5;color:#63776b;margin-bottom:12px}
.process strong{font-size:23px;line-height:1.4;letter-spacing:-.03em;font-weight:600;margin-bottom:14px}
.process p{font-size:16px;line-height:1.75}
.process-section>.shell>.actions{justify-content:center;margin-top:36px}
.home main>.wide-scene{padding:100px 0;background:var(--soft);color:var(--ink);text-align:center}
.home main>.wide-scene>img,.home main>.wide-scene:after{display:none}
.home main>.wide-scene h2{font-size:36px;line-height:1.3}
.home main>.wide-scene p{font-size:16px;line-height:1.75;margin:20px auto 0;color:var(--muted)}
.home main>.wide-scene .actions{justify-content:center;margin-top:28px}
.home main>.wide-scene .button{background:var(--ink);color:white;border-color:var(--ink)}
.blog-grid{gap:24px;align-items:stretch}
.blog-card{display:flex;flex-direction:column;border-radius:16px;overflow:hidden;background:#fff;border:1px solid #e5eae6;transition:translate .3s,box-shadow .3s}
.blog-card img{aspect-ratio:3/2;border-radius:0;max-height:none}
.blog-copy{padding:28px;display:flex;flex-direction:column;align-items:flex-start;flex:1}
.blog-card small{font-size:12px;line-height:1.5;margin:0;color:#64706a}
.blog-card h3{font-size:18px;line-height:1.45;font-weight:600;letter-spacing:-.03em;margin:10px 0 12px}
.blog-card p{font-size:15px;line-height:1.75;margin:0}
.blog-card .text-link{font-size:15px;line-height:1.6;font-weight:600;margin:auto 0 0;padding-top:24px;text-decoration:none}
.blog-card:hover{translate:0 -5px;box-shadow:0 20px 44px -12px #14242126}
.center-action{margin-top:40px}
.home-faq.section.soft{background:white}
.home-faq .shell{max-width:1200px}
.faq{max-width:960px;margin-inline:auto}
.faq details{border-bottom:0;border-top:1px dashed var(--line)}
.faq summary{padding:28px 44px 28px 0;font-size:18px;font-weight:500;line-height:1.65}
.faq summary:after{top:25px;font-size:24px;font-weight:350}
.faq details p{font-size:16px;line-height:1.85;padding:0 44px 28px 0}
.closing-scene{position:relative;isolation:isolate;background:#142421 url('/assets/images/hero-1600.webp') center/cover;padding:0 0 24px}
.closing-scene:before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#07140fad,#07140f47 55%,#07140f14)}
.closing{display:flex;align-items:center;min-height:620px;padding:110px 24px;overflow:visible}
.closing>img,.closing:after{display:none}
.closing h2{font-size:clamp(32px,3.4vw,48px);font-weight:600;line-height:1.3;letter-spacing:-.04em;max-width:800px}
.closing p{font-size:16px;line-height:1.85;margin-top:24px;max-width:660px}
.closing .actions{margin-top:32px}
.closing .button{min-height:52px;padding:14px 24px}
.footer{position:relative;width:min(1200px,calc(100% - 176px));margin:0 auto;padding:56px 40px 32px;background:#fff;color:var(--ink);border-radius:16px}
.footer>.shell{width:100%}
.footer-top{display:block;margin-bottom:28px}
.footer-top>p{margin-top:28px}
.footer p{color:#64706a;font-size:13px;line-height:1.8}
.footer-links{gap:12px 20px;margin:20px 0;font-size:13px}
.footer .copy{font-size:12px;padding-top:20px;border-top:1px solid #e5eae6}
.subpage main{padding-top:76px}
.page-intro{padding:72px 0 48px}
.page-intro h1{font-size:48px;line-height:1.25;font-weight:600;letter-spacing:-.03em;text-wrap:initial}
.page-intro .lead{font-size:17px;line-height:1.85;font-weight:350;max-width:760px}
.crumb{font-size:14px;line-height:1.5;margin-bottom:24px}
.page-image img{aspect-ratio:2.4;max-height:none;border-radius:16px}
.page-layout{grid-template-columns:minmax(0,1fr) 220px;gap:72px;padding-bottom:100px}
.prose section{margin-bottom:48px}
.prose h2{font-size:clamp(26px,2.7vw,40px);line-height:1.35;font-weight:600;letter-spacing:-.03em}
.prose p{font-size:16px;line-height:1.85;font-weight:350}
.side-nav{top:104px}
.article-page .page-intro,.article-layout{max-width:820px}
.article-layout .prose h2{font-size:28px;line-height:1.4}
.all-blog .blog-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:32px 24px}
.faq-page main>.shell{max-width:960px}
.policy-page .page-intro,.policy{max-width:800px}
@media(min-width:1600px){.hero-copy{padding-bottom:72px}}
@media(max-width:1180px){.header-inner{width:calc(100% - 48px);gap:20px}.header nav{gap:12px;font-size:14px}.header .button{padding-inline:14px}.brand strong{font-size:17px}}
@media(max-width:1023px){
 :root{--header-height:72px}.header{height:72px}.header-inner{height:72px}
 .header nav{top:72px;max-height:calc(100dvh - 72px);padding:18px 24px 28px}
 .header nav>a:not(.button){padding:14px 12px;font-size:18px}
 .header nav .button{min-height:54px;font-size:16px}
 .subpage main{padding-top:72px}.page-layout{gap:36px;grid-template-columns:minmax(0,1fr) 185px}
 .side-nav{top:98px}.bento{grid-template-columns:repeat(3,minmax(0,1fr))}
 .tile:first-child img{flex:none;height:auto;aspect-ratio:1}.tile:not(:first-child) img{height:auto}
 .process{gap:20px}.process strong{font-size:20px}.process p{font-size:15px}
 .all-blog .blog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:767px){
 .shell{width:calc(100% - 32px)}.header-inner{width:calc(100% - 48px)}
 .hero{height:100svh;min-height:720px;max-height:1080px;padding-top:72px}
 .hero>.shell{width:100%;padding-inline:24px}
 .hero-copy{padding:140px 0 110px;max-width:none}
 .hero h1{font-size:38px;line-height:1.2;max-width:none}
 .hero .kicker{font-size:12px;margin-bottom:15px}
 .hero .lead{font-size:15px;line-height:1.75;margin-top:16px;max-width:none}
 .hero .lead br{display:none}.hero .actions{margin-top:28px;gap:8px}
 .hero .button{min-height:44px;padding:12px 15px;font-size:13px}
 .section{padding:64px 0}.services-section{padding-top:32px}
 .section-heading{margin-bottom:36px}.section-heading h2{font-size:26px;line-height:1.3}
 .section-heading p{font-size:15px;line-height:1.75}.section-heading p br{display:none}
 .bento{grid-template-columns:1fr;gap:36px}
 .tile,.tile:not(:first-child){display:flex}.tile-copy{padding:24px 0 0}
 .tile-copy h3{font-size:22px;line-height:1.4}.tile-copy p{font-size:16px}
 .tile img,.tile:first-child img,.tile:not(:first-child) img{aspect-ratio:1;height:auto;min-height:0}
 .process{grid-template-columns:1fr;gap:0;max-width:460px;margin-inline:auto}
 .process li{display:grid;grid-template-columns:48px 1fr;gap:24px;padding-bottom:34px}
 .process li:last-child{padding-bottom:0}.flow-icon{height:48px;justify-content:center;margin:0}
 .flow-icon svg{width:32px;height:32px}.process .flow-icon:after{display:none}
 .process li:not(:last-child):after{content:'';position:absolute;left:24px;top:62px;bottom:14px;width:1px;background:#dce3df}
 .flow-number{margin-bottom:5px}.process strong{font-size:21px;margin-bottom:8px}.process p{font-size:15px}
 .home main>.wide-scene{padding:64px 0}.home main>.wide-scene h2{font-size:26px}
 .home main>.wide-scene p{font-size:15px}.home main>.wide-scene p br{display:none}
 .blog-grid,.all-blog .blog-grid{grid-template-columns:1fr;gap:28px}
 .blog-copy{padding:28px}.blog-card h3{font-size:22px;line-height:1.45}
 .home-faq .section-heading p{max-width:none}.faq summary{font-size:16px;padding:24px 36px 24px 0}
 .faq summary:after{top:21px}.faq details p{font-size:15px;padding:0 24px 24px 0}
 .closing-scene{padding:0 12px 84px;background-position:60% center}
 .closing{min-height:470px;padding:80px 12px}.closing>.shell{width:100%}
 .closing h2{font-size:30px;line-height:1.3}.closing p{font-size:15px}.closing p br{display:none}
 .closing .button{min-height:48px;padding:12px 18px}
 .footer{width:100%;padding:28px 20px 24px;border-radius:12px}
 .footer-top{margin-bottom:24px}.footer-top>p{margin-top:24px}
 .page-intro{padding:48px 0 36px}.page-intro h1{font-size:32px;line-height:1.3}
 .page-intro .lead{font-size:16px;line-height:1.85}.crumb{font-size:12px}
 .page-image img{aspect-ratio:3/2}.page-layout{display:block;padding-bottom:64px}
 .prose h2,.article-layout .prose h2{font-size:26px;line-height:1.35}
 .prose section{margin-bottom:36px}.prose p{font-size:16px}
 .side-nav{position:static}.article-layout{padding-bottom:64px}
 .all-blog{padding-bottom:64px}.mobile-call{left:16px;right:16px}
}
@media(max-width:359px){.hero h1{font-size:34px}.hero .actions{gap:10px}.hero .button{font-size:12px;padding-inline:12px}.blog-copy{padding:22px}}
@media(prefers-reduced-motion:reduce){.blog-card:hover{translate:none;box-shadow:none}}
/* Subpage reading layout follows the existing blog article view. */
.subpage .page-intro,.subpage main>.page-image,.subpage .page-layout,.subpage .policy,.subpage main>.sitemap-links,.faq-page main>.shell{max-width:820px;margin-inline:auto}
.subpage .page-layout{display:block;padding-bottom:80px}
.subpage .page-layout>.prose{max-width:none}
.subpage .prose h2{font-size:28px;line-height:1.4}
.subpage .prose p,.subpage .policy p,.subpage .faq details p{font-size:16px;line-height:1.85;font-weight:350}
.subpage .page-image img{aspect-ratio:3/2;border-radius:16px}
.subpage .side-nav{position:static;margin-top:48px;padding-top:24px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:8px 24px}
.subpage .side-nav .button{margin-top:0}
.subpage .faq{max-width:none}
@media(max-width:767px){.subpage .prose h2{font-size:26px;line-height:1.35}.subpage .page-layout{padding-bottom:64px}.subpage .side-nav{gap:4px 20px}}
