/* Shared language control; intentionally outside individual case navigation. */
.language-bar{position:relative;z-index:10;background:#eaece5;color:#29372f;border-bottom:1px solid #29372f20;font:12px/1.4 Arial,"Noto Sans",sans-serif;letter-spacing:normal;text-transform:none}.language-bar .language-inner{max-width:1600px;margin:auto;min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:4px 4%}.language-bar .language-brand{font-size:10px;font-weight:600;letter-spacing:.12em}.language-bar .language-control{display:flex;gap:10px;align-items:center}.language-bar label{display:inline;margin:0;font:12px/1.4 Arial,sans-serif;letter-spacing:normal;color:inherit;white-space:nowrap}.language-bar select{display:block;box-sizing:border-box;width:auto;max-width:160px;min-height:36px;margin:0;padding:7px 24px 7px 10px;border:1px solid #29372f40;border-radius:3px;background:#f8f8f3;color:#29372f;font:13px/1.4 Arial,sans-serif;text-transform:none;letter-spacing:normal;cursor:pointer}.language-bar select:focus-visible{outline:2px solid #496453;outline-offset:2px}.language-bar .language-status{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
html:not(:lang(en)) h1,html:not(:lang(en)) h2,html:not(:lang(en)) h3,html:not(:lang(en)) button,html:not(:lang(en)) a,html:not(:lang(en)) label,html:not(:lang(en)) summary{overflow-wrap:break-word}
html:lang(zh),html:lang(ja),html:lang(ko){word-break:normal;line-break:strict}
html:lang(zh) body,html:lang(ja) body,html:lang(ko) body{font-family:Arial,"PingFang SC","Hiragino Sans","Yu Gothic","Malgun Gothic",sans-serif}
html:lang(zh) h1,html:lang(zh) h2,html:lang(ja) h1,html:lang(ja) h2,html:lang(ko) h1,html:lang(ko) h2{font-family:Arial,"PingFang SC","Hiragino Sans","Yu Gothic","Malgun Gothic",sans-serif;letter-spacing:-.025em;line-height:1.22}
html:not(:lang(en)) .hero-copy h1{font-size:clamp(42px,5.6vw,82px)}
html:not(:lang(en)) .showcase-switcher button{white-space:normal;min-height:44px}
html:not(:lang(en)) .offer-grid h3{min-height:0}
html:not(:lang(en)) .case-fit h2{font-size:clamp(27px,3.1vw,42px)}
html:not(:lang(en)) .demo-bar,html:not(:lang(en)) .demo-banner{flex-wrap:wrap}
html:not(:lang(en)) .sidebar nav a,html:not(:lang(en)) .filter-tabs button{white-space:normal}
@media(max-width:700px){.language-bar .language-brand{font-size:8px;letter-spacing:.05em}.language-bar .language-inner{gap:8px;padding:4px 16px}.language-bar .language-control{gap:6px}.language-bar select{max-width:124px}.language-bar label{font-size:11px}html:not(:lang(en)) .hero-copy h1{font-size:clamp(35px,9vw,54px)}html:not(:lang(en)) .hero-ctas{flex-wrap:wrap}html:not(:lang(en)) .mobile-quick-nav a{font-size:12px;white-space:normal}html:not(:lang(en)) .home-service-line{overflow-wrap:anywhere}}
.language-bar[data-load-error=true] .language-status{position:static;display:block;width:auto;height:auto;clip-path:none;white-space:normal;padding:8px 4%;background:#fce8dd;color:#7a3523;font-size:12px}
/* Keep Chinese headline phrases intact on narrow phones instead of orphaning a single character. */
html:lang(zh) .hero-copy h1{text-wrap:balance}
@media(max-width:700px){html:lang(zh) .hero-copy h1{font-size:clamp(24px,7.6vw,40px);line-height:1.35}}
/* Keep preview forms inert until their page handlers are attached. */
html:not([data-app-ready]) form button:not([type=button]):not([type=reset]){pointer-events:none;opacity:.5}
/* Brand language picker with native buttons and listbox keyboard navigation. */
.language-bar .language-control{position:relative}
.language-bar #site-language{min-width:104px;min-height:36px;border:1px solid #68735d;background:transparent;color:#29372f;padding:7px 30px 7px 12px;font-size:13px;text-align:left;position:relative}
.language-bar #site-language:after{content:'⌄';position:absolute;right:10px}
.language-bar #language-options{position:absolute;top:calc(100% + 6px);right:0;width:168px;padding:6px;background:#f4f3ee;border:1px solid #68735d;box-shadow:0 8px 24px #0002;z-index:40}
.language-bar #language-options[hidden]{display:none}
.language-bar [role=option]{display:block;border:0;width:100%;padding:10px 12px;text-align:left;background:transparent;color:#29372f;font-size:14px;min-height:40px}
.language-bar [role=option][aria-selected=true],.language-bar [role=option]:hover{background:#dde3d3}
.language-bar button:focus-visible{outline:2px solid #29372f;outline-offset:2px}

/* Standalone service pages avoid downloading the homepage portfolio styles. */
:root{--paper:#f4f3ee;--ink:#252724;--muted:#566048;--line:#cfcec4}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:140px}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.5 Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible{outline:2px solid #27614c;outline-offset:5px}.skip{position:fixed;top:-80px;z-index:60;background:var(--ink);color:white;padding:15px}.skip:focus{top:0}.service-header{height:94px;display:flex;justify-content:space-between;align-items:center;padding:0 5.5%;gap:24px}.service-header nav{font-size:14px}.eyebrow{font-size:11px;letter-spacing:1.5px;line-height:1.7}.site-header{position:sticky;top:0;z-index:50;background:var(--paper)}html.has-site-header{scroll-padding-top:calc(var(--site-header-height,139px) + 12px)}.service-page~footer{display:flex;align-items:center;justify-content:space-between;gap:24px;border-top:1px solid var(--line)}.service-page~footer>div{display:flex;gap:20px;flex-wrap:wrap}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.service-header .brand-lockup img{width:190px;height:auto}.service-header nav{display:flex;gap:24px;position:static;background:none;padding:0}.service-page{max-width:1120px;margin:0 auto;padding:0 32px}.service-breadcrumb{display:flex;flex-wrap:wrap;gap:8px;padding-top:24px;font-size:13px}.service-breadcrumb a{text-decoration:underline}.service-hero{padding:72px 0 64px;border-bottom:1px solid var(--line)}.service-hero h1{font:clamp(38px,6vw,76px)/1.12 Georgia,serif;max-width:900px;letter-spacing:-1.5px;margin:20px 0}.service-lead{max-width:760px;font-size:19px;line-height:1.7}.service-cta{display:inline-flex;align-items:center;gap:28px;background:var(--ink);color:var(--paper);padding:18px 22px;margin:20px 0;line-height:1.5}.service-location{font-size:13px;color:#566048}.service-columns{display:grid;grid-template-columns:1fr 1fr;gap:64px;padding:64px 0;border-bottom:1px solid var(--line)}.service-page h2{font:clamp(27px,3vw,38px)/1.2 Georgia,serif;letter-spacing:-.5px;margin:0 0 24px}.service-page h3{font-size:19px;line-height:1.4;margin:28px 0 12px}.service-page p,.service-page li,.service-inputs{line-height:1.8}.service-page ul,.service-page ol{padding-left:22px}.service-page li{margin-bottom:10px}.service-inputs br{display:block;content:"";margin-top:20px}.service-window span{display:block;font-size:12px;text-transform:uppercase;letter-spacing:1px}.service-planning,.service-related,.service-next{padding:56px 0;border-bottom:1px solid var(--line)}.service-planning article{max-width:850px}.service-related>div{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.service-related a{display:flex;justify-content:space-between;gap:16px;padding:20px;border:1px solid #858d7b;line-height:1.6}.service-email{display:block;text-decoration:underline;width:fit-content}.service-next{background:#e9eddf;padding:40px;margin-top:32px}.service-page section:last-child{border:0}.service-breadcrumb a,.service-related a,.service-header a{overflow-wrap:anywhere}@media(max-width:700px){.service-header{height:auto;min-height:90px;gap:20px;flex-wrap:wrap;padding:16px 0}.service-header nav{display:flex!important;gap:18px;font-size:12px}.service-header .brand-lockup img{width:160px}.service-page{padding:0 22px}.service-hero{padding:40px 0}.service-hero h1{font-size:42px;overflow-wrap:anywhere}.service-lead{font-size:17px}.service-columns{grid-template-columns:1fr;gap:32px;padding:40px 0}.service-next{padding:24px}.service-cta{max-width:100%;gap:18px}.service-related>div{grid-template-columns:1fr}}
/* Keep standalone service navigation clear of the homepage's generic mobile nav rules. */
.service-header{background:var(--paper);color:var(--ink);border-bottom:1px solid var(--line)}.service-header .brand-lockup{display:inline-flex;flex-shrink:0;line-height:1}.service-header .brand-lockup img{display:block}.service-header nav{width:auto;left:auto;top:auto;color:var(--ink);border:0}.service-page .service-breadcrumb{position:static;left:auto;top:auto;width:auto;background:transparent;color:var(--ink);border:0;transform:none;box-shadow:none}.service-page~footer{background:var(--paper);color:var(--ink);padding:32px 5.5%;font-size:14px}.service-page~footer>div{font-size:13px;color:var(--ink)}@media(max-width:360px){.service-hero h1{font-size:34px}}

.analytics-consent{position:fixed;z-index:10000;bottom:4rem;right:1rem;width:min(30rem,calc(100vw - 2rem));padding:1.25rem;background:#f4f3ee;color:#20251f;border:1px solid #767b70;box-shadow:0 8px 32px #0002;font:14px/1.5 system-ui,sans-serif}.analytics-consent[hidden]{display:none}.analytics-consent strong{font-size:17px}.analytics-consent p{margin:.75rem 0}.analytics-consent button,.analytics-settings{font:inherit;padding:.6rem .8rem;border:1px solid #767b70;background:#f4f3ee;color:#20251f;cursor:pointer}.analytics-consent button{margin:0 .5rem .75rem 0}.analytics-consent a{display:block;text-decoration:underline;color:inherit}.analytics-settings{position:fixed;bottom:1rem;right:1rem;z-index:9999;font:12px/1.4 system-ui,sans-serif}.analytics-consent button:focus-visible,.analytics-consent a:focus-visible,.analytics-settings:focus-visible{outline:3px solid #27614c;outline-offset:3px}
