/* Homepage-only refinement; service and document routes keep their working styles. */
.home-page{--home-ink:#081b35}
.home-page .icon-library{position:absolute;width:0;height:0;overflow:hidden}
.home-page .icon{width:1.25em;height:1.25em;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.home-page .header-controls{display:flex;align-items:center;gap:clamp(12px,3vw,30px)}
.home-page .language-options{display:flex;gap:6px;align-items:center}
.home-page .language-options button{width:38px;height:38px;display:grid;place-items:center;border:1px solid #ffffff38;border-radius:50%;background:transparent;color:white;font-size:1.2rem;line-height:1}
.home-page .language-options [aria-current=true]{border-color:var(--gold);background:#e6b63f17}
.home-page .language-options button:disabled{opacity:.6;cursor:not-allowed}
.home-page .site-menu summary{font-weight:700}
.home-page .home-hero{overflow:hidden;background:#061326}
.home-page .home-hero .hero-grid{position:relative;isolation:isolate;min-height:650px;display:flex;align-items:center;padding-block:clamp(64px,8vw,120px);gap:0}
.home-page .hero-copy{position:relative;z-index:2;max-width:750px}
.home-page .hero .eyebrow{color:var(--gold);letter-spacing:.22em}
.home-page .hero h1{font-size:clamp(2.5rem,6vw,5.6rem);line-height:1.23;letter-spacing:-.04em;text-wrap:balance}
.home-page .hero-lead{font-size:clamp(1.08rem,2vw,1.45rem);line-height:1.65;max-width:600px;margin:24px 0 30px!important;color:#fff!important;text-shadow:0 1px 7px #031126b3}
.home-page .hero .actions{gap:12px}
.home-page .hero-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;width:min(100%,520px)}
.home-page .hero-action{display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:auto auto;align-items:center;gap:7px 10px;min-height:112px;padding:16px 17px;border-radius:22px;text-align:left;box-shadow:0 12px 28px #020b1870;transition:transform .2s,box-shadow .2s,background .2s}
.home-page .hero-action:hover,.home-page .hero-action:focus-visible{transform:translateY(-2px);box-shadow:0 16px 34px #020b1890}
.home-page .hero-action .action-symbol{grid-column:1;grid-row:1;width:30px;height:30px}
.home-page .hero-action .action-symbol-image{object-fit:contain;filter:drop-shadow(0 4px 7px #020b1866)}
.home-page .hero-action .arrow{grid-column:3;grid-row:1;width:20px;height:20px;margin:0}
.home-page .action-copy{grid-column:1/-1;grid-row:2;display:grid;gap:2px;min-width:0}
.home-page .action-copy strong{font-size:1.05rem;line-height:1.3}
.home-page .action-copy small{font-size:.78rem;font-weight:500;line-height:1.35;opacity:.82}
.home-page .hero .button{min-height:58px;padding:14px 24px}
.home-page .button .arrow,.home-page .button.primary .icon:last-child{margin-left:auto}
.home-page .hero-action.button .arrow{margin:0}
.home-page .line-secondary{border:1px solid #d5dfeb;color:white;background:#07172ad4;backdrop-filter:blur(8px)}
.home-page .line-secondary:hover,.home-page .line-secondary:focus-visible{background:#17344c}
.home-page .primary:hover,.home-page .primary:focus-visible{background:#f5c85e}
.home-page .hero-photo{position:absolute;z-index:-1;inset:0;border-radius:0;aspect-ratio:auto}
.home-page .hero-photo img{height:100%;width:100%;object-fit:cover;object-position:center 58%}
.home-page .hero-photo picture{display:block;width:100%;height:100%}
.home-page .hero-photo:after{background:linear-gradient(90deg,#031126db 0%,#041329a6 43%,#04132929 100%),linear-gradient(0deg,#0311264d,transparent 45%)}
.home-page .hero-photo p{right:22px;left:auto;text-align:right;font-size:.7rem;color:#fff9;letter-spacing:.14em}
.home-page .section-heading .eyebrow{color:#496076}
.home-page .section-heading h2{line-height:1.35;text-wrap:balance}
.home-page .path-grid{display:grid;gap:30px}
.home-page .path-group{min-width:0}
.home-page .path-intro{margin-bottom:16px;padding:0 4px}
.home-page .category-label{display:flex;align-items:center;gap:14px;width:max-content;max-width:100%;min-height:84px;margin:0 0 10px;padding:2px 10px 2px 0;border-radius:14px;color:var(--accent,var(--cyan));text-decoration:none}
.home-page .category-label:hover,.home-page .category-label:focus-visible{background:#061a3a0b;outline:2px solid currentColor;outline-offset:3px}
.home-page .category-label span{font-size:1.18rem;font-weight:800;line-height:1.25}
.home-page .category-icon{display:block;width:84px;height:84px;object-fit:contain;flex:none;filter:drop-shadow(0 7px 10px #061a3a20)}
.home-page .path-intro h3{font-size:clamp(1.18rem,2vw,1.5rem);line-height:1.42;color:var(--navy);text-wrap:pretty}
.home-page .path-intro p{color:#43566a;font-size:1rem;line-height:1.75;margin:8px 0 0}
.home-page .path-group.cyan{--accent:var(--cyan)}
.home-page .path-group.gold{--accent:var(--gold)}
.home-page .service-card{height:auto;border:1px solid #213a56;border-radius:20px;box-shadow:0 10px 30px #061a3a12;transition:border-color .2s,box-shadow .2s,transform .2s}
.home-page .service-card:hover,.home-page .service-card:focus-visible{border-color:var(--accent);box-shadow:0 14px 34px #061a3a24;transform:translateY(-2px)}
.home-page .card-image img{height:auto}
.home-page .card-content{padding:20px 22px 18px;gap:12px}
.home-page .card-kicker{color:var(--accent);font-size:.82rem;font-weight:700;letter-spacing:.04em}
.home-page .card-content h4{margin:0;font-size:clamp(1.3rem,2.25vw,1.75rem);line-height:1.42;font-weight:700;letter-spacing:-.02em;text-wrap:pretty}
.home-page .card-link{margin-top:8px;gap:12px}
.home-page .card-link .icon{margin-left:auto}
.home-page .home-shared{background:#fff}
.home-page .home-testimonial{padding-block:30px;background:#f3ebdd}
.home-page .home-testimonial .wrap{max-width:1080px}
.home-page .home-testimonial picture{display:block;width:100%}
.home-page .home-testimonial img{display:block;width:100%;height:auto;border-radius:20px;box-shadow:0 12px 30px #0311261f}
.home-page .home-assistant{background:#061326}
.home-page .home-assistant .assistant-grid{align-items:center;max-width:1000px;grid-template-columns:minmax(160px,240px) minmax(0,1fr);gap:clamp(24px,5vw,60px)}
.home-page .nongfa-media{width:100%;aspect-ratio:4/5;min-height:220px;display:grid;place-items:center}
.home-page .nongfa-media img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 8px 18px #00cfff33);animation:nongfa-float 6s ease-in-out infinite}
.home-page .nongfa-cyan{color:var(--cyan);font-weight:700}
.home-page .nongfa-gold{color:var(--gold);font-weight:700}
.home-page .home-assistant h2{font-size:clamp(1.6rem,3vw,2.35rem)}
.home-page .home-assistant p:not(.eyebrow){line-height:1.75;margin:12px 0;color:#d2dce8}
.home-page .home-assistant .actions{margin-top:24px}
.home-page .home-assistant .button{max-width:360px}
.home-page .home-contact{background:#091b34;color:#fff}
.home-page .home-contact .section-heading .eyebrow{color:var(--gold)}
.home-page .home-contact .section-heading>p:last-child{color:#c8d4e1}
.home-page .contact-grid{display:grid;gap:10px}
.home-page .contact-grid>a{display:flex;align-items:center;gap:16px;min-width:0;min-height:76px;padding:16px 18px;border:1px solid #ffffff32;border-radius:14px;text-decoration:none;background:#ffffff09;transition:background .2s,border-color .2s}
.home-page .contact-grid>a:hover,.home-page .contact-grid>a:focus-visible{background:#ffffff16;border-color:var(--gold)}
.home-page .contact-icon{display:block;width:48px;height:48px;object-fit:contain;flex:none;filter:drop-shadow(0 5px 8px #020c1970)}
.home-page .contact-grid span{min-width:0;display:grid;gap:2px}
.home-page .contact-grid strong{font-size:.92rem}
.home-page .contact-grid small{font-size:.9rem;overflow-wrap:normal;word-break:normal;color:#c8d4e1}
.home-page .contact-grid .arrow{margin-left:auto;width:20px;height:20px;color:var(--gold)}
.home-page .site-footer{padding-bottom:max(28px,env(safe-area-inset-bottom));gap:16px}
.home-page .site-footer>a:not(.back-top){gap:8px}
.home-page .back-top{position:static;display:grid!important;place-items:center;width:46px;height:46px;min-height:46px;margin-left:auto;padding:0;border-color:var(--cyan);border-radius:50%;background:#0d2845;color:var(--cyan);font-size:1.6rem;line-height:1;box-shadow:none}
.home-page .back-top:hover,.home-page .back-top:focus-visible{background:#123d60}
.home-page .back-top[hidden]{display:none!important}
@keyframes nongfa-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@media(max-width:599px){
  .home-page .site-bar{gap:6px}
  .home-page .site-brand .brand-logo{width:74px;height:74px}
  .home-page .site-header.compact .brand-logo{width:56px;height:56px}
  .home-page .site-brand span{display:none}
  .home-page .header-controls{gap:12px}
  .home-page .language-options button{width:34px;height:34px;font-size:1.08rem}
  .home-page .site-menu summary{gap:5px;font-size:.93rem}
  .home-page .home-hero .hero-grid{min-height:690px;align-items:flex-start;padding-top:30px;padding-bottom:86px}
  .home-page .hero-copy{position:relative}
  .home-page .hero h1{font-size:clamp(2.2rem,9vw,3.5rem)}
  .home-page .hero-lead{font-size:1rem;line-height:1.55;max-width:34ch;margin:14px 0 18px!important;text-wrap:pretty}
  .home-page .hero .actions{display:grid;grid-template-columns:1fr;width:min(100%,286px);max-width:286px;gap:8px}
  .home-page .hero .hero-actions{position:static;margin-top:2px}
  .home-page .hero .button{width:100%;line-height:1.35;white-space:normal;overflow:visible}
  .home-page .hero-action{grid-template-columns:34px minmax(0,1fr) 18px;grid-template-rows:auto;height:60px;min-height:60px;padding:7px 14px;border-radius:18px;gap:8px}
  .home-page .hero-action .action-symbol{grid-column:1;grid-row:1;width:30px;height:30px}
  .home-page .hero-action .arrow{grid-column:3;grid-row:1}
  .home-page .action-copy{grid-column:2;grid-row:1;display:flex;align-items:baseline;gap:6px;white-space:nowrap}
  .home-page .action-copy strong{font-size:.94rem}
  .home-page .action-copy small{font-size:.68rem}
  .home-page .hero-photo img{object-position:center center;filter:brightness(1.24) saturate(1.08)}
  .home-page .hero-photo:after{background:linear-gradient(90deg,#0412288c 0%,#04122852 52%,#04122814 100%),linear-gradient(180deg,#04122838 0%,transparent 64%)}
  .home-page .hero-photo p{display:none}
  .home-page .path-grid{gap:34px}
  .home-page .section{padding-block:38px}
  .home-page .home-shared{padding-top:28px}
  .home-page .home-testimonial{padding-block:18px}
  .home-page .home-testimonial img{border-radius:14px}
  .home-page .section-heading h2{font-size:clamp(1.38rem,5.7vw,1.8rem)}
  .home-page .section-heading>p:last-child{font-size:.92rem;line-height:1.6;text-wrap:pretty}
  .home-page .path-intro h3{font-size:clamp(1.12rem,4.8vw,1.32rem)}
  .home-page .category-icon{width:80px;height:80px}
  .home-page .category-label{gap:12px;min-height:80px;margin-bottom:8px;padding-right:12px}
  .home-page .category-label span{font-size:1.08rem}
  .home-page .path-intro p{font-size:.92rem;line-height:1.62;text-wrap:pretty}
  .home-page .card-content h4{font-size:clamp(1.22rem,5.2vw,1.5rem);line-height:1.4}
  .home-page .home-assistant .assistant-grid{grid-template-columns:84px minmax(0,1fr);gap:14px}
  .home-page .nongfa-media{grid-column:1;grid-row:1/3;min-height:106px;align-self:start}
  .home-page .nongfa-copy{display:contents}
  .home-page .home-assistant .eyebrow,.home-page .home-assistant h2{grid-column:2;margin:0}
  .home-page .home-assistant h2{font-size:clamp(1.35rem,5.5vw,1.7rem);line-height:1.42}
  .home-page .home-assistant p:not(.eyebrow),.home-page .home-assistant .actions{grid-column:1/-1}
  .home-page .home-assistant p:not(.eyebrow){font-size:1rem;line-height:1.7;margin:8px 0}
  .home-page .home-assistant .actions{display:grid;width:100%}
  .home-page .home-assistant .button{max-width:none}
  .home-page .contact-grid>a{gap:12px;padding:14px}
  .home-page .contact-grid small{font-size:.82rem}
  .home-page .site-footer{padding-bottom:max(20px,env(safe-area-inset-bottom))}
  .home-page .back-top{margin-left:0}
}
@media(min-width:600px){
  .home-page .home-testimonial img{aspect-ratio:2.6/1;object-fit:cover;object-position:center}
  .home-page .path-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .home-page .path-group{display:flex;flex-direction:column}
  .home-page .path-intro{min-height:168px}
  .home-page .service-card{flex:1}
  .home-page .contact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(min-width:900px){
  .home-page .home-hero .hero-grid{min-height:680px}
  .home-page .hero .actions{flex-wrap:nowrap}
  .home-page .path-intro{min-height:150px}
  .home-page .contact-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(prefers-reduced-motion:reduce){
  .home-page .nongfa-media img{animation:none}
  .home-page .service-card,.home-page .contact-grid>a{transition:none}
}
.home-page .category-label.service-plaque{position:relative;display:flex;flex-direction:column;gap:7px;width:100%;max-width:none;min-height:126px;margin:0 0 18px;padding:25px 18px;align-items:center;justify-content:center;text-align:center;overflow:hidden;border:1px solid #e6b63f52;border-radius:16px;background:linear-gradient(145deg,#061a3a 0%,#09284e 58%,#06162f 100%);box-shadow:0 12px 28px #061a3a20;color:var(--cream);text-decoration:none;isolation:isolate}
.home-page .category-label.service-plaque::before,.home-page .category-label.service-plaque::after{content:"";position:absolute;left:8%;right:8%;height:1px;background:linear-gradient(90deg,transparent 0%,#b77b1d 12%,#f5d77a 50%,#b77b1d 88%,transparent 100%)}
.home-page .category-label.service-plaque::before{top:13px}.home-page .category-label.service-plaque::after{bottom:13px}
.home-page .category-label.service-plaque:hover,.home-page .category-label.service-plaque:focus-visible{background:linear-gradient(145deg,#09284e 0%,#0b315d 58%,#071a38 100%);border-color:var(--gold);outline:2px solid var(--gold);outline-offset:3px;box-shadow:0 16px 34px #061a3a32;transform:translateY(-1px)}
.home-page .category-label.service-plaque .plaque-name{display:flex;align-items:baseline;justify-content:center;gap:.28em;max-width:100%;font-size:clamp(1.42rem,6.2vw,2rem);font-weight:800;line-height:1.25;letter-spacing:-.025em;white-space:nowrap}
.home-page .category-label.service-plaque .plaque-story{font-size:.72rem;font-weight:700;line-height:1.35;letter-spacing:.16em;color:#e8c979;text-transform:uppercase;white-space:nowrap}
.home-page .service-plaque .plaque-primary{font:inherit;color:#f7f0e3}.home-page .service-plaque .plaque-accent{font:inherit;color:var(--gold)}
@media(max-width:360px){.home-page .category-label.service-plaque{min-height:116px;padding-inline:12px}.home-page .category-label.service-plaque .plaque-name{font-size:1.34rem}.home-page .category-label.service-plaque .plaque-story{font-size:.67rem;letter-spacing:.12em}}

/* Nongfa is a guide on the home route. Video is drawn to transparent canvases. */
.home-page #home-nongfa-video{position:fixed;width:1px;height:1px;opacity:0;pointer-events:none}
.home-page .hero-nongfa{display:flex;align-items:center;gap:10px;width:min(100%,420px);margin:-4px 0 18px;color:#fff}
.home-page .hero-nongfa canvas{display:block;width:72px;height:82px;flex:0 0 72px;background:transparent;filter:drop-shadow(0 7px 11px #00cfff35)}
.home-page .hero-nongfa>div{display:grid;gap:3px;padding:9px 13px;border:1px solid #ffffff2c;border-radius:15px;background:#061a3ab8;backdrop-filter:blur(7px)}
.home-page .hero-nongfa strong{font-size:.92rem;line-height:1.45}
.home-page .hero-nongfa a{width:max-content;min-height:32px;display:inline-flex;align-items:center;color:var(--gold);font-size:.8rem;font-weight:700}
.home-page .nongfa-media canvas{display:block;width:100%;height:100%;object-fit:contain;background:transparent;filter:drop-shadow(0 8px 18px #00cfff33)}
.home-page .home-nongfa-reaction{position:fixed;left:14px;bottom:18px;z-index:45;display:flex;align-items:flex-end;gap:4px;pointer-events:none;opacity:0;transform:translateY(10px) scale(.96);transition:opacity .2s ease,transform .2s ease}
.home-page .home-nongfa-reaction.is-visible{opacity:1;transform:translateY(0) scale(1)}
.home-page .home-nongfa-reaction canvas{display:block;width:92px;height:104px;background:transparent;filter:drop-shadow(0 7px 10px #061a3a32)}
.home-page .home-nongfa-reaction p{max-width:190px;margin:0 0 10px -6px;padding:8px 11px;border:1px solid #e6b63f66;border-radius:13px;background:#fffaf0;color:var(--navy);box-shadow:0 7px 18px #061a3a24;font-size:.78rem;font-weight:700;line-height:1.45}
@media(max-width:599px){
 .home-page .hero-nongfa{margin:0 0 14px;gap:7px;width:min(100%,286px)}
 .home-page .hero-nongfa canvas{width:58px;height:66px;flex-basis:58px}
 .home-page .hero-nongfa>div{padding:7px 10px}
 .home-page .hero-nongfa strong{font-size:.78rem}
 .home-page .hero-nongfa a{font-size:.72rem}
 .home-page .home-nongfa-reaction{bottom:12px;left:8px}
 .home-page .home-nongfa-reaction canvas{width:76px;height:86px}
 .home-page .home-nongfa-reaction p{max-width:166px;font-size:.72rem}
}
@media(prefers-reduced-motion:reduce){.home-page .home-nongfa-reaction{transition:none}}

/* High-resolution Nongfa character motion. Image-based poses avoid canvas masking artifacts. */
.home-page .nongfa-hd{display:block;object-fit:contain;object-position:center;background:transparent;transform-origin:50% 84%;will-change:transform,opacity;image-rendering:auto;opacity:1;transition:opacity .72s ease,filter .72s ease}
.home-page .nongfa-hd.nongfa-pose-changing{opacity:.18;filter:blur(1.2px) drop-shadow(0 5px 10px #00cfff22)}
.home-page .hero-nongfa .nongfa-hd{width:94px;height:107px;flex:0 0 94px;filter:drop-shadow(0 7px 11px #00cfff35);animation:nongfa-breathe 8.8s cubic-bezier(.42,0,.58,1) infinite}
.home-page .nongfa-media .nongfa-hd{width:100%;height:100%;filter:drop-shadow(0 10px 20px #00cfff3f);animation:nongfa-breathe 8.8s cubic-bezier(.42,0,.58,1) infinite}
.home-page .home-nongfa-reaction .nongfa-hd{width:92px;height:104px;filter:drop-shadow(0 7px 10px #061a3a32)}
.home-page .nongfa-wave{animation:nongfa-wave 6.4s cubic-bezier(.42,0,.58,1) 1!important}
.home-page .nongfa-greet{animation:nongfa-greet 5.8s cubic-bezier(.42,0,.58,1) 1!important}
@keyframes nongfa-breathe{0%,100%{transform:translateY(0) scale(1)}48%,58%{transform:translateY(-2px) scale(1.005)}}
@keyframes nongfa-wave{0%,100%{transform:translateY(0) rotate(0)}34%{transform:translateY(-3px) rotate(-.8deg)}68%{transform:translateY(-1px) rotate(.8deg)}}
@keyframes nongfa-greet{0%,100%{transform:translateY(0) rotate(0) scale(1)}38%{transform:translateY(-3px) rotate(.7deg) scale(1.008)}70%{transform:translateY(-1px) rotate(-.6deg) scale(1.003)}}
@media(max-width:599px){.home-page .hero-nongfa .nongfa-hd{width:76px;height:87px;flex-basis:76px}.home-page .home-nongfa-reaction .nongfa-hd{width:76px;height:86px}}
@media(prefers-reduced-motion:reduce){.home-page .nongfa-hd{animation:none!important;transform:none!important}}

/* Premium service plaque line and touch response. */
.home-page .path-group.motion-reveal:not(.motion-visible) .service-plaque::before,
.home-page .path-group.motion-reveal:not(.motion-visible) .service-plaque::after{transform:scaleX(0)}
.home-page .path-group.motion-visible .service-plaque::before{animation:plaque-line-reveal .75s cubic-bezier(.22,.75,.25,1) both}
.home-page .path-group.motion-visible .service-plaque::after{animation:plaque-line-reveal .75s .12s cubic-bezier(.22,.75,.25,1) both}
.home-page .service-plaque::before,.home-page .service-plaque::after{transform-origin:center;will-change:transform}
.home-page .service-card .card-image img{transition:transform .28s ease,filter .28s ease}
.home-page .service-card:active{transform:translateY(-3px) scale(.992);border-color:var(--accent);box-shadow:0 16px 36px #061a3a32}
.home-page .service-card:active .card-image img{transform:scale(1.02);filter:brightness(1.04)}
.home-page .service-plaque:active{transform:translateY(-2px) scale(.994);border-color:var(--gold);box-shadow:0 15px 34px #061a3a35}
@keyframes plaque-line-reveal{from{transform:scaleX(0);opacity:.25}to{transform:scaleX(1);opacity:1}}
@media(prefers-reduced-motion:reduce){.home-page .service-plaque::before,.home-page .service-plaque::after{animation:none!important;transform:none!important}.home-page .service-card,.home-page .service-card .card-image img,.home-page .service-plaque{transition:none!important}}

/* Keep the LINE identity group visually centered while the arrow stays at the edge. */
.home-page .hero-action.line-secondary{position:relative;display:flex;justify-content:center;align-items:center;gap:12px;padding-inline:56px}
.home-page .hero-action.line-secondary>.arrow{position:absolute;right:18px;top:50%;transform:translateY(-50%)}

/* Hide the anchor's fallback arrow; the gold ::before icon is the only visible mark. */
.home-page .back-top{font-size:0!important;color:transparent}
.home-page .back-top::before{color:var(--gold)}

/* Align hero action symbols in one fixed column. */
.home-page .hero-action.line-secondary{display:grid;justify-content:normal;align-items:center;gap:7px 10px;padding:16px 17px}
.home-page .hero-action.line-secondary>.arrow{position:static;right:auto;top:auto;transform:none}
.home-page .hero-action.line-secondary .action-symbol-image{width:30px!important;height:30px!important;max-width:30px;flex-basis:30px;justify-self:center}
@media(max-width:599px){.home-page .hero-action.line-secondary{grid-template-columns:34px minmax(0,1fr) 18px;grid-template-rows:auto;height:60px;min-height:60px;padding:7px 14px;gap:8px}}
/* Lock both hero symbols to the same column center. */
.home-page .hero-action{justify-content:normal}
.home-page .hero-action .action-symbol{justify-self:center}
/* Match the LINE symbol column to the service symbol above on mobile. */
@media(max-width:599px){.home-page .hero-action.line-secondary{padding:7px 24px}}

