/* Action hierarchy, shared hit areas, and restrained interaction feedback. */
:root{--action-ease:cubic-bezier(.22,.7,.25,1);--action-time:240ms}
a,button,summary{touch-action:manipulation}
.menu-toggle{flex:0 0 44px!important;width:44px!important;height:44px;padding:9px;align-items:flex-end}
.menu-toggle span{transition:width var(--action-time) var(--action-ease),transform var(--action-time) var(--action-ease)}
.header-actions{flex-shrink:0}
.site-header .contact-link{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;white-space:nowrap;gap:18px;min-height:48px;padding:0 20px;border:1px solid var(--paper);border-radius:999px;background:var(--paper);color:var(--ink);font-size:12px;font-weight:700;line-height:1.4;text-shadow:none;transition:background var(--action-time),border-color var(--action-time),transform 120ms}
.contact-link span{display:inline-block;padding-left:0;font-size:18px;transition:transform var(--action-time) var(--action-ease)}
.desktop-nav a,.footer-home,.back-top{display:inline-flex;align-items:center;min-height:44px}
.desktop-nav a:after,.footer-home:after{bottom:5px}
.text-link,.hero .text-link,.recruit-hero .text-link{min-height:48px;font-size:13px;gap:24px}
.arrow-circle,.hero .arrow-circle{flex:0 0 40px;width:40px;height:40px;font-size:18px;transition:background var(--action-time),color var(--action-time),transform var(--action-time) var(--action-ease)}
.service-link{min-height:58px;font-size:13px;padding:14px 0;gap:18px;transition:color var(--action-time),border-color var(--action-time)}
.service-link span{display:inline-block;font-size:18px;transition:transform var(--action-time) var(--action-ease)}
.hero-services>a{min-height:44px;transition:color var(--action-time),background var(--action-time)}
.hero-services>a:active{background:rgba(255,255,255,.14)}
.submit-button{min-height:60px;font-size:13px;transition:background var(--action-time),transform 120ms}
.submit-button span{display:inline-block;font-size:19px;transition:transform var(--action-time) var(--action-ease)}
.submit-button:disabled{cursor:default;opacity:.5}
.menu-close{min-width:44px;min-height:44px}
.faq summary{transition:color var(--action-time)}
.faq summary span{transition:transform var(--action-time) var(--action-ease)}
.faq details[open] summary{color:#496742}
.menu-dialog nav a{transition:color var(--action-time),padding-inline var(--action-time) var(--action-ease)}
.site-header :is(a,button):focus-visible,.hero :is(a,button):focus-visible,.recruit-hero :is(a,button):focus-visible{outline:2px solid #fff;outline-offset:5px;box-shadow:0 0 0 4px rgba(12,38,31,.5)}
.site-header .contact-link:focus-visible{outline:2px solid #fff;outline-offset:5px}
.desktop-nav a:focus-visible:after,.footer-home:focus-visible:after{right:0}
.text-link:focus-visible .arrow-circle{background:var(--lime);color:var(--ink)}
.service-link:focus-visible{color:#496742;border-color:currentColor}
.submit-button:focus-visible{background:#30584a}
.contact-link:active,.submit-button:not(:disabled):active{transform:translateY(1px)}
.menu-toggle:active{transform:scale(.96)}
@media(hover:hover) and (pointer:fine){
 .site-header .contact-link:hover{background:var(--lime);border-color:var(--lime)}
 .contact-link:hover span,.service-link:hover span,.submit-button:not(:disabled):hover span{transform:translate(3px,-3px)}
 .menu-toggle:hover span:last-child{width:27px}
 .service-link:hover{color:#496742;border-color:currentColor}
 .recruit-banner:hover .arrow-circle{background:var(--lime);color:var(--ink);transform:translate(3px,-3px)}
 .faq summary:hover{color:#496742}
 .menu-dialog nav a:hover{color:#496742;padding-inline:8px}
}
.recruit-banner:focus-visible .arrow-circle{background:var(--lime);color:var(--ink)}
@media(max-width:600px){
 .site-header .contact-link{min-height:44px;padding:0 13px;font-size:11px;gap:10px}
 .contact-link span{font-size:16px}
 .header-actions{gap:12px}
 .text-link,.hero .text-link,.recruit-hero .text-link{font-size:12px;gap:21px}
 .hero-services{min-height:108px;row-gap:6px}
 .hero-services>a{min-height:44px}
 .service-link{font-size:12px}
 .recruit-banner .text-link{font-size:12px}
 .footer-home{font-size:12px}
}
@media(prefers-reduced-motion:reduce){
 a,button,summary,.arrow-circle,.service-link span,.contact-link span,.submit-button span,.menu-toggle span{transition:none!important}
 .contact-link:active,.submit-button:active,.menu-toggle:active{transform:none!important}
}
