/* Incremental refinement. The original stylesheet remains the base. */
:root {
  --ink:#163b33; --muted:#526c62; --green:#08664e; --green2:#278466;
  --mint:#edf5ef; --mint2:#f7faf7; --line:#d9e5dc;
  --shadow:0 12px 32px rgba(24,58,40,.06); --radius:16px;
  --ease-out:cubic-bezier(.23,1,.32,1); --micro:160ms; --enter:240ms;
}
html { scroll-padding-top:104px; scrollbar-gutter:stable; }
body { font-family:"PingFang SC","Microsoft YaHei",system-ui,sans-serif; }
[hidden] { display:none!important; }
::selection { background:#cce6d8; color:#163b33; }
h1,h2,h3 { text-wrap:balance; letter-spacing:-.025em; }
p { text-wrap:pretty; }
a,button { -webkit-tap-highlight-color:transparent; }
.refined :is(a,button,input,textarea,[tabindex]):focus-visible { outline:2px solid var(--green); outline-offset:5px; }
.wrap { width:min(1240px,calc(100% - 96px)); }
.section { padding:104px 0; }
.eyebrow { font-weight:600; letter-spacing:.09em; }
.site-header { background:#fffffff5; backdrop-filter:none; border-bottom:1px solid #e5ece6; }
.brand svg { flex-shrink:0; }
.brand-note { color:#536f63; }
.main-nav a { position:relative; font-size:14px; }
.main-nav a::after { content:""; position:absolute; inset:auto 0 9px; height:2px; background:var(--green); transform:scaleX(0); transform-origin:left; transition:transform var(--micro) var(--ease-out); }
.main-nav a[aria-current] { color:var(--green); }
.main-nav a[aria-current]::after { transform:scaleX(1); }
.menu-button span { transition:transform var(--micro) var(--ease-out); }
.menu-button[aria-expanded=true] span:first-child { transform:translateY(4px) rotate(45deg); }
.menu-button[aria-expanded=true] span:last-child { transform:translateY(-4px) rotate(-45deg); }
.hero { min-height:740px; background:#f5f8f2; border-bottom:1px solid #e2e9dd; }
.hero-grid { grid-template-columns:1.1fr 1fr; gap:48px; padding:76px 0 80px; }
.hero .hero-brand-line { font-size:20px; letter-spacing:-.015em; text-transform:none; color:var(--green); margin-bottom:24px; }
.brand-statement { grid-column:1 / -1; margin:0; padding-top:32px; border-top:1px solid #d4dfd2; font-size:clamp(18px,1.85vw,26px); line-height:1.75; color:var(--muted); text-align:center; }
.brand-statement span,.brand-statement span span { white-space:nowrap; }
.brand-statement strong { display:inline-block; }
.brand-statement strong { font-weight:600; color:var(--ink); }
.outcome-brand { font-size:clamp(27px,2.65vw,38px); line-height:1.5; }
.hero-copy h1 { font-size:clamp(42px,4.15vw,62px); line-height:1.24; font-weight:650; }
.hero-copy h1 em { color:var(--green); }
.hero-lead { font-size:21px; margin-top:25px; font-weight:600; }
.hero-desc { max-width:540px; margin-top:16px; font-size:15px; line-height:1.85; }
.hero-points { gap:8px 18px; margin-top:24px; font-size:12px; color:#496858; }
.hero-points span:before { background:transparent; color:var(--green); font-size:12px; width:12px; }
.entry-grid { gap:12px; margin-top:32px; }
.entry-card { grid-template-columns:1fr auto; min-height:108px; padding:20px 22px; gap:12px; border-radius:12px; border:1px solid #cbdacd; background:#fff; box-shadow:none; transition:transform var(--micro) var(--ease-out); }
.entry-icon { display:none; }
.entry-card strong { font-size:17px; font-weight:650; }
.entry-card small { font-size:12px; line-height:1.6; margin-top:6px; color:#526c62; }
.entry-card:first-child { background:#0d5946; border-color:#0d5946; color:white; }
.entry-card:first-child small { color:#d4e7dd; }
.entry-card:first-child b { color:white; }
.entry-card b { font-size:23px; font-weight:400; }
.entry-card:hover { transform:none; box-shadow:none; }
.entry-card:active,.submit-button:active { transform:scale(.985); transition-duration:100ms; }
.work-visual { margin:0; min-width:0; align-self:center; }
.work-diagram { display:block; width:100%; height:auto; overflow:visible; }
.diagram-label { font-size:15px; font-weight:500; }
.diagram-result { font-size:18px; font-weight:500; }
.work-visual figcaption { display:flex; justify-content:center; align-items:center; gap:14px; color:#426353; font-size:12px; margin-top:4px; }
.work-visual figcaption i { font-style:normal; color:#829d8b; }
.flow-dot { opacity:0; }
/* One finite explanation; never a live-status loop. The complete diagram is always readable. */
@media(prefers-reduced-motion:no-preference) {
  .motion-ready .flow-dot-a { animation:flow-a 2200ms var(--ease-out) 1 both; }
  .motion-ready .flow-dot-b { animation:flow-b 2200ms var(--ease-out) 1 both; }
  .motion-ready .flow-dot-c { animation:flow-c 2200ms var(--ease-out) 1 both; }
}
@keyframes flow-a { 0%{opacity:0;transform:translate(92px,98px)} 12%{opacity:1} 40%{opacity:1;transform:translate(232px,181px)} 47%{opacity:0;transform:translate(244px,205px)} 57%{opacity:0;transform:translate(149px,356px)} 66%{opacity:1} 91%{opacity:1;transform:translate(251px,405px)} 100%{opacity:0;transform:translate(264px,419px)} }
@keyframes flow-b { 0%{opacity:0;transform:translate(280px,78px)} 12%{opacity:1} 40%{opacity:1;transform:translate(280px,181px)} 47%{opacity:0;transform:translate(280px,197px)} 57%{opacity:0;transform:translate(280px,356px)} 66%{opacity:1} 91%{opacity:1;transform:translate(280px,408px)} 100%{opacity:0;transform:translate(280px,419px)} }
@keyframes flow-c { 0%{opacity:0;transform:translate(468px,98px)} 12%{opacity:1} 40%{opacity:1;transform:translate(328px,181px)} 47%{opacity:0;transform:translate(316px,205px)} 57%{opacity:0;transform:translate(411px,356px)} 66%{opacity:1} 91%{opacity:1;transform:translate(309px,405px)} 100%{opacity:0;transform:translate(296px,419px)} }
.chat-board { border:0; background:#f5f8f5; box-shadow:none; border-radius:16px; gap:48px; }
.bubble-row p { font-size:14px; box-shadow:none; }
.chat-role small { font-size:12px; }
.solution-card { border:1px solid var(--line); box-shadow:none; background:white; border-radius:16px; }
.solution-tags span { font-size:12px; }
.capabilities { background:white; }
.capability-nav { position:static; box-shadow:none; background:#f5f8f4; border:0; border-radius:10px; }
.capability-nav a { min-height:44px; }
.capability-nav a[aria-current] { color:var(--green); background:#e7efe7; border-radius:6px; }
.product-block { grid-template-columns:.65fr 1.45fr; gap:48px; padding:76px 0; }
.product-block.reverse { grid-template-columns:1.45fr .65fr; }
.product-block>* { min-width:0; }
.product-copy h3 { font-size:28px; line-height:1.45; }
.product-copy>p:not(.eyebrow) { font-size:15px; line-height:1.9; }
.product-copy ul { font-size:13px; line-height:1.9; }
.spike-button { border:1px solid #d1ddd4; border-radius:10px; box-shadow:0 12px 28px rgba(24,58,40,.07); cursor:zoom-in; }
.spike-button span { font-size:12px; border-radius:6px; padding:7px 12px; }
.spike-figure figcaption { font-size:12px; color:#536c60; }
.spike-note { color:#526c62; background:#f6f8f4; border:0; }
.outcomes { background:#eef4ed; }
.outcome-grid { grid-template-columns:1fr 1.2fr; gap:64px; }
.outcome-grid>* { min-width:0; }
.outcome-cards { display:block; }
.outcome-cards article { display:grid; grid-template-columns:112px 1fr; align-items:baseline; gap:24px; border:0; border-bottom:1px solid #c9d9c9; border-radius:0; background:transparent; min-height:0; padding:25px 0; }
.outcome-cards article:first-child { border-top:1px solid #c9d9c9; }
.outcome-cards p { margin:0; font-size:14px; line-height:1.9; }
.cases .section-heading { margin-bottom:16px; }
.imagery-note { color:#526c62; font-size:12px; }
.cases .case-filters { gap:4px; margin:28px 0 32px; display:block; border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:12px 0; }
.filter-group { padding:4px 0; border-radius:0; background:transparent; gap:4px; }
.filter-group>span { min-width:75px; color:#526c62; }
.filter-group button,.case-empty button { min-height:44px; padding:9px 14px; border-radius:7px; }
.cases .portfolio-grid { gap:32px 24px; align-items:start; overflow:clip; }
.portfolio-grid article { border-radius:12px; background:#f5f8f4; }
.case-cover { height:auto; aspect-ratio:1.65; justify-content:flex-start; align-items:end; text-align:left; padding:24px; }
.case-cover>img { transition:transform var(--enter) var(--ease-out); }
.case-cover:after { background:linear-gradient(180deg,rgba(7,29,22,.08),rgba(7,29,22,.78)); }
.case-cover>span { font-size:26px; font-weight:500; letter-spacing:0; text-shadow:none; }
.case-content { padding:22px 24px 26px; text-align:left; }
.case-content h3 { font-size:18px; min-height:60px; line-height:1.65; font-weight:600; }
.case-content .case-tags { font-size:12px; margin:12px 0 24px; }
.case-facts { gap:12px; border-top:1px solid #dde6dc; padding-top:18px; }
.case-facts>div+div { border-left:0; }
.case-facts strong { font-size:21px; line-height:1.5; }
.case-facts span { font-size:12px; margin-top:4px; }
.company-section { background:#fff; }
.company-intro { padding-left:0; padding-right:0; background:transparent; border-radius:0; }
.company-intro p { color:#395b4c; }
.company-values { border:0; border-radius:12px; padding:40px; color:#fff; background:linear-gradient(90deg,rgba(16,44,37,.96),rgba(16,44,37,.78)),url('assets/imagery/company.jpg') center/cover no-repeat; }
.company-values>span,.company-values p { color:#d5e5da; }
.company-values h3 { font-size:clamp(28px,3.1vw,42px); letter-spacing:0; }
.social-details p { color:#c4d8ce; }
.social-codes figcaption>span { color:#d0ded5; font-size:12px; }
.social-details a,.contact-email { overflow-wrap:anywhere; }
.footer-row>span { color:#526c62; font-size:12px; }
.footer-row nav { font-size:13px; }
/* Native dialog provides inert background and keyboard focus containment. */
dialog.lightbox { border:0; margin:0; width:100%; height:100%; max-width:none; max-height:none; padding:76px 32px 32px; background:#102c25f7; color:white; overscroll-behavior:contain; }
dialog.lightbox:not([open]) { display:none; }
dialog.lightbox[open] { display:flex; align-items:center; justify-content:center; }
.lightbox::backdrop { background:#102c25eb; }
.lightbox-inner { width:min(1500px,100%); margin:auto; min-width:0; }
.lightbox-inner h2 { font-size:18px; margin-bottom:18px; }
.lightbox-inner img { border-radius:0; }
.lightbox-close { position:fixed; top:16px; right:24px; border-radius:8px; background:#24483e; z-index:2; }
.refined .lightbox-close:focus-visible { outline-color:#d3ecde; }
#lightbox-error { padding:24px; }
.lead-page .contact-stage { background:#113d31; }
.contact-layout { gap:80px; }
.contact-invitation h1 { font-size:clamp(36px,3.5vw,54px); }
.contact-invitation #lead-copy,.contact-email { color:#cbdfd2; }
.contact-card { border-radius:16px; padding:36px 44px 40px; }
.contact-card .intent-switch { grid-template-columns:repeat(3,minmax(0,1fr)); }

.intent-switch button { position:relative; color:#526c62; border:0; min-height:50px; font-size:15px; }
.intent-switch button::after { content:""; position:absolute; bottom:-1px; left:12%; right:12%; height:2px; background:var(--green); transform:scaleX(0); transition:transform var(--micro) var(--ease-out); }
.intent-switch button.active::after { transform:scaleX(1); }
.intent-switch button.active { color:var(--green); }
.contact-card .lead-form input::placeholder,.contact-card .lead-form textarea::placeholder { color:#64796f; font-size:13px; }
.contact-card .lead-form input:not([type=checkbox]),.contact-card .lead-form textarea { min-height:48px; font-size:16px; caret-color:var(--green); }
.contact-card .lead-form :is(input,textarea)[aria-invalid=true] { border-color:#a13e32; }
.field-error { display:block; margin-top:6px; font-size:12px; color:#9b342b; }
.contact-card .consent { display:grid; grid-template-columns:auto minmax(0,1fr); column-gap:9px; }
.contact-card .consent .field-error { grid-column:2; margin-top:0; }
.contact-card .intent-note { background:#f1f6f0; color:#4b6458; border-radius:8px; }
.contact-card .submit-button { border-radius:9px; transition:transform var(--micro) var(--ease-out); }
.contact-card .submit-note { color:#526c62; font-size:12px; text-align:left; }
.form-status,.noscript-note { padding:12px 0; color:#365e49; font-size:13px; }
.lead-receipt { width:min(460px,calc(100% - 32px)); max-height:calc(100dvh - 32px); overflow:auto; margin:auto; padding:32px; border:1px solid var(--line); border-radius:20px; color:var(--ink); background:#fff; box-shadow:0 24px 80px #102d3133; text-align:center; }
.lead-receipt::backdrop { background:#102d3180; }
.receipt-check { display:grid; place-items:center; width:56px; height:56px; margin:0 auto 20px; border-radius:50%; background:var(--mint); color:var(--green); font-size:30px; }
.lead-receipt h2 { font-size:28px; }
.lead-receipt p { margin-top:16px; font-size:16px; line-height:1.7; }
.lead-receipt .receipt-reference { font-size:12px; color:var(--muted); overflow-wrap:anywhere; }
.receipt-reference span { display:block; }
.lead-receipt .submit-button { margin-top:24px; }
.lead-form[aria-busy=true] .submit-button { cursor:wait; opacity:.8; }
html:not(.js-enabled) .menu-button,html:not(.js-enabled) .intent-switch,html:not(.js-enabled) .lead-form { display:none; }
@media(hover:hover) and (pointer:fine) {
 .main-nav a:hover::after { transform:scaleX(1); }
 .entry-card:hover { transform:translateY(-2px); }
 .portfolio-grid article:hover .case-cover>img { transform:scale(1.025); }
 .filter-group button:not([aria-pressed=true]):hover { background:#edf3ea; }
}
@media(max-width:1100px) {
 .hero-grid { gap:28px; } .entry-card { padding:18px 16px; }
 .contact-layout { gap:40px; } .contact-card { padding:30px; }
}
@media(max-width:980px) {
 .wrap { width:min(760px,calc(100% - 48px)); }
 .hero-grid { grid-template-columns:1fr; gap:32px; padding:52px 0 60px; }
 .hero-copy h1 { font-size:52px; }
 .hero-desc { max-width:610px; }
 .entry-grid { grid-template-columns:1fr 1fr; }
 .work-visual { width:min(520px,100%); margin:0 auto; }
 .main-nav a::after { left:14px; right:14px; bottom:8px; }
 html:not(.js-enabled) .site-header { height:auto; position:relative; }
 html:not(.js-enabled) .header-inner { flex-wrap:wrap; padding:16px 0; }
 html:not(.js-enabled) .main-nav { display:flex; position:static; width:100%; margin:0; box-shadow:none; border:0; }
 .product-block,.product-block.reverse { grid-template-columns:1fr; gap:28px; padding:56px 0; }
 .outcome-grid { grid-template-columns:1fr; gap:32px; }
 .contact-layout { grid-template-columns:1fr; }
 .contact-card { max-width:680px; }
 .cases .portfolio-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:640px) {
 html { scroll-padding-top:88px; }
 .wrap { width:calc(100% - 40px); }
 .section { padding:68px 0; }
 .hero-grid { padding:38px 0 44px; gap:28px; }
 .hero-copy h1 { font-size:clamp(30px,9.5vw,44px); line-height:1.3; }
 .hero-lead { font-size:17px; margin-top:22px; }
 .hero-desc { font-size:14px; margin-top:12px; }
 .hero-points { gap:8px 16px; margin-top:20px; }
 .entry-grid { grid-template-columns:1fr; margin-top:26px; gap:10px; }
 .entry-card { min-height:88px; padding:17px 20px; }
 .entry-card small { margin-top:4px; }
 .work-visual { max-width:400px; }
 .diagram-label { font-size:22px; }
 .diagram-result { font-size:24px; }
 .work-visual figcaption { gap:8px; font-size:10px; }
 .capability-nav { grid-template-columns:repeat(2,1fr); }
 .capability-nav a { font-size:12px; border:0; }
 .product-copy h3 { font-size:25px; }
 .product-block { padding:44px 0; }
 .spike-button span { display:block; font-size:10px; padding:4px 8px; right:6px; bottom:6px; }
 .outcome-cards article { grid-template-columns:1fr; gap:8px; padding:20px 0; }
 .company-values { padding:28px 24px; }
 .company-values p { font-size:15px; }
 .cases .portfolio-grid { grid-template-columns:1fr; gap:24px; }
 .filter-group>span { width:100%; margin:6px 0; }
 .filter-group button { padding:9px 12px; }
 .case-cover { aspect-ratio:1.65; }
 .case-content h3 { min-height:0; }
 .company-intro { padding-left:0; padding-right:0; }
 .company-heading h2 { font-size:32px; }
 dialog.lightbox { padding:76px 12px 24px; }
 .lightbox-close { right:12px; }
 .contact-invitation h1 { font-size:34px; }
 .contact-card { padding:20px 20px 26px; border-radius:14px; }
 .intent-switch button { font-size:14px; }
 .contact-card .intent-switch button { font-size:12px; }
 .social-codes figcaption>span { font-size:11px; }
}
@media(prefers-reduced-motion:reduce) {
 html { scroll-behavior:auto; }
 *,*::before,*::after { animation:none!important; transition:none!important; }
}
html.keyboard-input { scroll-behavior:auto; }
html.keyboard-input *,html.keyboard-input *::after { transition:none!important; }

.gallery { padding-top:44px; padding-bottom:64px; }
.gallery h1 { font-size:36px; }
.gallery-return { margin-left:auto; font-size:14px; text-decoration:underline; text-underline-offset:5px; }
.gallery-item { padding:48px 0; scroll-margin-top:100px; }
.gallery-item h2 { font-size:24px; margin-bottom:20px; }
.gallery-item img { display:block; width:100%; height:auto; }

html:not(.js-enabled) { scroll-behavior:auto; }
