.soleia-skip-link{position:absolute;left:16px;top:-100px;z-index:99999;background:#fff;color:#105440;padding:10px 18px}.soleia-skip-link:focus{top:10px}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.mobile-menu{display:none}
@media(max-width:767px){
 .narrow-break{display:block}
 .practice h2 .mobile-break{display:block}
 .practice-pair h4{line-height:1.8;text-wrap:pretty}
 .approach-copy h2{font-size:30px!important}
 .approach-fields b{font-size:11px}.approach-fields span{font-size:12px}
 .approach-fields>div{gap:9px}.approach-fields{column-gap:15px}
 .approach-steps p,.practice-intro,.practice-pair article>p,.scope,.site-feature{font-size:14px}
 .approach-steps p{line-height:1.9}
 .case-flow p{font-size:12px}.case-bottom p,.case-figure>p{font-size:12px}
 .content-proof p{font-size:13px}.delivery-top>div>p:last-child{font-size:14px}
 .service-list h3{font-size:13px}.service-list p{font-size:12px}
 .service-list{row-gap:28px}.service-list>div{padding-left:33px}
 .request-flow ol{display:flex;flex-direction:column;align-items:flex-start;gap:12px;font-size:14px}
 .request-flow li:not(:last-child)::after{content:'↓';display:block;margin:8px 0 0 3px}
 .request-flow p{font-size:12px}
 .about-main{grid-template-columns:1fr;gap:25px}.portrait{width:120px;height:145px}
 .about h2{font-size:25px!important}.about-main p{font-size:14px}
 .site-footer nav{font-size:12px;gap:8px 22px}.site-footer nav a{padding-block:7px}
 .final-cta>p{font-size:14px}.final-cta h2{text-wrap:balance}
 .site-header{gap:12px;position:relative}.brand{width:140px}.site-header>nav{margin-left:auto}
 .nav-cta{gap:14px;padding:9px 15px;min-height:44px}.mobile-menu{display:block;flex-shrink:0}
 .mobile-menu summary{list-style:none;display:grid;place-items:center;width:32px;height:44px;cursor:pointer}
 .mobile-menu summary::-webkit-details-marker{display:none}.mobile-menu summary svg{width:26px;height:26px;stroke:#105440;stroke-width:1.7}
 .mobile-menu nav{position:absolute;left:0;right:0;top:72px;padding:20px;background:#fff;z-index:10;box-shadow:0 8px 20px #19232014;display:flex;flex-direction:column;align-items:stretch;gap:0}
 .site-header .mobile-menu nav>a:not(.nav-cta){display:block;padding:12px 0;border-bottom:1px solid #dce4df;font-size:15px}
 .mobile-menu nav>a:last-child{border:0}
}
@media(max-width:600px){
 .work .work-reason{grid-template-columns:1fr;gap:14px}
 .work .work-reason>span{display:none}
 .work .work-reason p{display:grid;grid-template-columns:90px 1fr;column-gap:12px;font-size:13px;line-height:1.8}
 .work .work-reason b{font-size:12px;margin:0}.work-reason br{display:none}
 .price table{font-size:12px;table-layout:fixed;width:100%}
 .price th,.price td{padding:14px 5px;overflow-wrap:anywhere}
 .price thead th,.price tbody th{font-size:12px}
 .price th:nth-child(1){width:24%}.price th:nth-child(2){width:29%}.price th:nth-child(3){width:16%}.price th:nth-child(4){width:31%}
 .price td:last-child{white-space:nowrap;letter-spacing:-.04em}
 .case-chart g[font-size="14"]{font-size:22px}.case-chart g[font-size="26"]{font-size:30px}
 .case-chart g[font-size="14"] text:first-child{font-size:19px}
 .case-chart g[font-size="14"] text:nth-last-child(2){text-anchor:start;x:16px}
 .case-chart g[font-size="14"] text:last-child{text-anchor:end;x:790px}
}

@media(max-width:767px){.about h2 .mobile-break,.final-cta h2 .mobile-break{display:block}.approach-steps p br{display:initial}.approach-fields span br{display:none}.final-cta h2{text-wrap:initial}}

/* FV refinement: fixed internal canvas, proportional at every viewport. */
.geometry::before{background-size:960px auto}
.hero-device{height:auto;aspect-ratio:780/423}
.device-stage{position:absolute;inset:0 auto auto 0;width:780px;height:423px;transform-origin:0 0;transform:scale(var(--device-scale,1))}
.device-stage .device-base{width:100%;height:100%}
.device-stage .phone-frame{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.device-stage .laptop-ui{position:absolute;left:11.9%;top:8.35%;width:65.25%;height:72.5%;transform:skewY(-1.7deg);background:#fff;display:grid;grid-template-columns:117px 1fr;color:#26342e;border:1px solid #f8faf9;border-radius:1px;overflow:hidden;font-size:9px;line-height:1.6}
.device-stage .laptop-ui aside{background:#f4f7f6;padding:14px 7px;color:#6b7672}
.device-stage .laptop-ui aside>strong{font-size:9px;display:block;white-space:nowrap;color:#3c4943;margin-bottom:26px;letter-spacing:-.04em}
.device-stage .google-g{color:#4579b5;font-size:13px}
.device-stage .laptop-ui aside p{margin:12px 0;font-size:9px}
.device-stage .laptop-ui aside .selected{border-radius:10px;background:#dcefe6;color:#18523d;padding:3px 6px;margin-left:-1px;white-space:nowrap}
.device-stage .dashboard{padding:21px 13px 7px 15px}
.device-stage .dashboard-top{display:flex;flex-wrap:wrap;gap:7px;justify-content:space-between;align-items:center;margin-bottom:20px}
.device-stage .dashboard-top b{font-size:14px;letter-spacing:-.04em}
.device-stage .dashboard-top span{font-size:6px;color:#6d7973;border:1px solid #dce4df;border-radius:3px;padding:3px}
.device-stage .metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}
.device-stage .metrics>div{padding:9px 4px 8px;border-radius:5px;background:#f9faf9;border:1px solid #f1f3f2}
.device-stage .metrics small{display:block;color:#748078;font-size:7px;white-space:nowrap}
.device-stage .metrics b{display:block;font-family:SoleiaNumbers,sans-serif;font-size:17px;margin:3px 0 0;line-height:1.5}
.device-stage .metrics em{display:block;font-style:normal;font-size:9px;font-weight:700;color:var(--warning)}
.device-stage .metrics em.up{color:#21755e}
.device-stage .dashboard-caption{font-size:9px;font-weight:700;margin:11px 0 2px}
.device-stage .hero-chart{width:100%;height:129px;font-family:SoleiaJP,sans-serif}
.device-stage .phone-ui{position:absolute;left:76.1%;top:29%;width:18.25%;height:65.8%;padding:28px 10px 12px;border-radius:16px;background:linear-gradient(145deg,#fff,#fdfdfd);font-size:10px;line-height:1.6;overflow:hidden}
.device-stage .phone-ui::before{content:"";position:absolute;top:0;left:28%;width:45%;height:9px;background:#171c19;border-radius:0 0 8px 8px}
.device-stage .phone-ui>b{font-size:14px;display:block;margin:0 0 14px 2px}
.device-stage .phone-ui>div{display:flex;align-items:center;gap:8px;margin-bottom:16px}
.device-stage .phone-ui .icon{width:18px;height:18px;color:#33413b;stroke-width:2.2}
.device-stage .phone-ui i{font-size:9px;font-style:normal;font-weight:700;background:#197658;color:white;border-radius:50%;width:16px;height:16px;display:grid;place-items:center;margin-left:auto}
.device-stage .phone-ui i.warning-dot{background:var(--warning)}
.device-stage .wp-mark{font-family:Georgia,serif;display:grid;place-items:center;border:1px solid #33413b;border-radius:50%;width:18px;height:18px;font-size:12px;line-height:1}
.device-stage .warning{display:flex;align-items:center;justify-content:center;gap:5px;background:var(--warning-bg);color:var(--warning);font-size:11px;font-weight:700;padding:14px 2px;border-radius:5px;margin-top:5px;white-space:nowrap}
.device-stage .warning>span{font-size:19px;line-height:1}

.device-stage .laptop-backdrop{display:none}
.device-stage .laptop-ui{left:0;top:0;width:510px;height:326px;border:0;border-radius:6px;transform-origin:0 0;transform:matrix3d(0.8789968779,-0.0466331222,0,-0.0001879861,-0.0101667002,0.9168312487,0,-1.70101e-05,0,0,1,0,92.0963855422,44.18,0,1)}
.device-stage .phone-ui{left:76.1%;top:28.4%;width:18.1%;height:66.2%;border-radius:18px;padding-top:28px}
.device-stage .phone-ui::before{left:26%;width:49%;height:9px;border-radius:0 0 8px 8px}
@media(min-width:768px) and (max-width:1250px){
 .hero-copy{width:44%}.hero h1{font-size:clamp(44px,4.8vw,60px)}
 .hero-description{font-size:clamp(12px,1.2vw,15px)}
 .hero-device{width:64%;right:-25px;top:40px}
 .hero .button{min-width:0;font-size:17px;padding-inline:22px}
}
@media(max-width:767px){.hero-device{width:100%;height:auto;max-width:720px;margin-inline:auto}.geometry::before{background-size:720px auto}}
@media(min-width:768px) and (max-width:1050px){
 .approach-main{grid-template-columns:320px minmax(0,1fr);gap:24px}
 .approach h2{font-size:27px}.approach .narrow-break{display:block}
 .approach-copy>p:not(.eyebrow){font-size:13px}
 .process-button{font-size:13px;gap:15px;padding-inline:17px}
}

/* Tablet keeps usable horizontal space; phone-only stacking begins below 768px. */
.portrait{object-position:75% 25%}
@media(min-width:768px) and (max-width:1050px){
 .approach-main{grid-template-columns:1fr;gap:32px}
 .approach-copy{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:28px;align-items:start}
 .approach-copy .eyebrow{grid-column:1/-1}
 .approach-copy h2{font-size:30px;grid-row:2/4;grid-column:1}
 .approach-copy>p:not(.eyebrow){grid-column:2;margin-top:0;font-size:12px}
 .approach-copy .future-action{grid-column:2}
 .approach .narrow-break{display:none}
 .approach-steps{padding-top:0;gap:20px}
 .approach-steps p{font-size:12px;white-space:normal}
 .approach-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
 .approach-fields>div{padding-left:0;border:0}.approach-fields b{font-size:14px}.approach-fields span{font-size:12px}
 .works-heading h2{font-size:30px}.works-heading{gap:20px}.design-chain{font-size:10px}
 .practice-pair{gap:28px}.practice-pair h4{font-size:16px;white-space:normal}
 .maintenance{grid-template-columns:1fr 1fr;gap:20px}
 .maintenance-number{border-right:0}.maintenance-tasks{grid-column:1/-1;border-top:1px solid var(--line);padding-top:15px}
 .service-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 15px}
 .service-list>div{margin-left:0;border:0}
 .price-top{grid-template-columns:100px 1fr;gap:24px}
 .request-flow{display:block}.request-flow ol{display:flex;justify-content:space-between;margin-top:24px;gap:10px;font-size:12px}
 .request-flow li:not(:last-child)::after{margin-left:10px}
 .about-main{grid-template-columns:170px minmax(0,1fr);gap:32px}.portrait{width:170px;height:205px}
 .about h2{font-size:25px}.about-main p{font-size:14px}.about-main p br{display:none}
 .site-footer{flex-wrap:wrap;gap:24px}.site-footer small{margin-left:0}
}
@media(min-width:768px) and (max-width:1050px){
 .delivery-top{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px}
 .delivery h2{font-size:26px}.delivery-flow h3{font-size:11px;white-space:normal}
 .execution-range{font-size:10px;max-width:48%;top:115px}
}
@media(min-width:768px) and (max-width:850px){
 .approach .narrow-break{display:block}
}
@media(min-width:768px) and (max-width:1050px){
 .execution-range{top:auto;bottom:0}
 .content-proof{grid-template-columns:minmax(0,1fr) 180px 180px;gap:18px}
}
@media(min-width:768px) and (max-width:850px){
 .content-proof{grid-template-columns:1fr 1fr}
 .content-proof>div:first-child{grid-column:1/-1}
 .content-proof p{font-size:12px}
}

/* Section-specific transitions instead of one phone breakpoint for the page. */
@media(min-width:580px) and (max-width:767px){
 .hero{height:auto;min-height:370px;display:grid;grid-template-columns:46% 54%;align-items:center;padding:24px 0 35px}
 .hero-copy{width:auto}.hero h1{font-size:clamp(30px,5.3vw,40px)}
 .hero .eyebrow{font-size:9px;letter-spacing:.11em}.hero-description{font-size:12px;line-height:1.9}
 .hero-description br{display:none}.hero .button{font-size:12px;padding:13px 16px;gap:12px;min-height:48px;margin-top:22px}
 .hero-device{position:relative;width:100%;right:auto;top:auto;margin:0 0 0 -4%;max-width:none}
 .hero-steps{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
 .hero-steps>div{align-items:flex-start;gap:8px}.hero-steps .icon{width:22px;height:22px}.hero-steps strong{font-size:11px}.hero-steps p>span{font-size:9px}
 .concerns{grid-template-columns:.9fr 1.1fr;gap:24px}.concerns h2{font-size:26px!important}
 .works-heading{display:flex;align-items:flex-end;gap:24px}.works-heading h2{font-size:27px!important}.design-chain{max-width:44%;margin:0;line-height:2}
 .works-intro span{display:inline;margin-left:12px}
 .practice-pair{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.practice-label{flex-wrap:wrap;gap:4px}.practice-pair h4{font-size:16px}.practice-pair article>p{font-size:13px}
 .practice-pair .scope br{display:none}.practice h2 .mobile-break{display:inline}
 .price-top{display:grid;grid-template-columns:70px minmax(0,1fr);gap:24px}.price table{margin-top:0;font-size:12px}.price thead th,.price tbody th{font-size:12px}
 .price th,.price td{padding:12px 6px}.price td:nth-child(2){max-width:none}
 .about-main{grid-template-columns:140px minmax(0,1fr);gap:28px}.portrait{width:140px;height:170px}.about-main p{font-size:13px}.about h2{font-size:24px!important}
 .about h2 .mobile-break{display:inline}
}
@media(min-width:520px) and (max-width:767px){
 .approach-steps{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
 .approach-steps li{display:block;text-align:center;min-width:0}
 .step-icon{margin:0 auto 14px;width:60px;height:60px}
 .approach-steps h3{font-size:15px;margin-top:5px}.approach-steps p{font-size:11px;margin-top:9px}
 .approach-steps li::after{left:calc(50% + 30px);right:calc(-50% + 18px);top:30px;width:auto;height:1px;bottom:auto}
 .approach-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
 .approach-fields b{font-size:12px}.approach-fields span{font-size:12px}
 .request-flow ol{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;font-size:12px;align-items:start}
 .request-flow li{position:relative;padding-right:12px}.request-flow li:not(:last-child)::after{content:'→';position:absolute;right:-6px;top:0;margin:0}
 .service-list{grid-template-columns:repeat(3,minmax(0,1fr))}
 .maintenance{grid-template-columns:1fr 1fr;gap:20px}.maintenance-number{border-block:0;border-left:1px solid var(--line);display:block;padding:0 0 0 20px}
 .maintenance-tasks{grid-column:1/-1}.maintenance-title h3{font-size:16px}
}
@media(min-width:660px) and (max-width:767px){
 .approach-copy{display:grid;grid-template-columns:1fr 1fr;gap:12px 24px}.approach-copy .eyebrow{grid-column:1/-1}
 .approach-copy h2{grid-column:1;grid-row:2/4;font-size:27px!important}
 .approach-copy>p:not(.eyebrow){grid-column:2;margin:0;font-size:12px}.approach-copy .future-action{grid-column:2}.process-button{margin-top:12px;font-size:11px;gap:10px}
}
