/* Shared feedback for real links and controls. Decorative images stay static. */
:where(a[href],button,summary,[role="button"]){-webkit-tap-highlight-color:#afd94724}
:where(a[href],button:not(:disabled),summary,[role="button"]){cursor:pointer;transition:color .18s ease,background-color .18s ease,border-color .18s ease,box-shadow .18s ease,opacity .18s ease,transform .18s ease}
:where(a[href],button,summary) :is(.ui-icon,.contact-icon,.tab-arrow){transition:transform .18s ease,color .18s ease}
.button-dark{--action-bg:var(--dark);--action-fg:#fff;--action-hover:#304a37}
.button-outline{--action-bg:transparent;--action-fg:var(--dark);--action-hover:#eaf3d7}
.button-lime,.contact-action{--action-bg:var(--green);--action-fg:var(--dark);--action-hover:#c7eb71}
.contact-main .contact-circle.contact-action{--action-bg:var(--dark);--action-fg:#fff;--action-hover:#304a37}
:is(a[href],button:not(:disabled),summary,[role="button"]):focus-visible{outline:2px solid var(--brand);outline-offset:4px}
.service-area-dark :is(a[href],button,summary):focus-visible,.site-footer a:focus-visible{outline-color:#c7eb71}
.service-item summary,.service-questions summary{transition:color .18s ease,background-color .18s ease,box-shadow .18s ease}
.service-item summary:after{transition:color .18s ease,transform .18s ease}
:is(.service-hub-card,.related-service-grid>a) :is(h2,h3){transition:color .18s ease}
.service-hub-image{transition:box-shadow .18s ease}
.document-thumb>span{transition:background-color .18s ease,color .18s ease}

@media(hover:hover) and (pointer:fine){
  :is(.button,.contact-action):not(:disabled):hover{background:var(--action-hover);color:var(--action-fg);transform:translateY(-2px);box-shadow:0 6px 16px #10251824}
  .button-outline:not(:disabled):hover{border-color:#7c9b49}
  :is(.button,.contact-action):not(:disabled):hover :is(.contact-icon,.ui-icon-arrow-up-right){transform:translate(2px,-2px)}
  .floating-contact.contact-action:hover{background:var(--action-hover);color:var(--action-fg);box-shadow:0 6px 18px #10251835}
  .contact-main .contact-circle.contact-action:hover{background:var(--action-hover);color:var(--action-fg);transform:translateY(-2px)}

  :is(.main-nav>a,.nav-group>summary,.nav-submenu a,.language-switch a):hover{color:#476620;opacity:1}
  .main-nav>a:hover:after{width:100%;height:2px;background:var(--brand)}
  .nav-submenu a:hover{background:#eef5e4;box-shadow:-4px 0 0 var(--brand)}
  .language-switch a:hover{text-decoration:underline;text-decoration-color:var(--brand);text-decoration-thickness:2px;text-underline-offset:5px}
  .brand:hover{opacity:.8}

  :is(.inline-link:not(.contact-action),.text-button,.service-detail-link,.service-directory a,.overview-links a,.office-contacts a,.document-copy a:not(.contact-action),.page-toc a):hover{color:#476620;border-color:#779d36;text-decoration-color:#779d36}
  :is(.service-detail-link,.service-directory a,.overview-links a,.office-contacts a,.document-copy a:not(.contact-action)):hover{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:2px}
  :is(.inline-link:not(.contact-action),.text-button,.service-detail-link):hover .ui-icon-arrow-up-right{transform:translate(2px,-2px)}
  .hero-actions .hero-expertise:hover{color:#c7eb71;border-color:#c7eb71}
  .service-area-dark :is(.inline-link:not(.contact-action),.service-detail-link,.service-directory a):hover{color:#d6f394;border-color:#c7eb71;text-decoration-color:#c7eb71}
  .site-footer a:not(.social-links>a):hover,.page-breadcrumb a:hover{color:#c7eb71;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
  .contact-email-link:not(.contact-action):hover{opacity:1;text-decoration-thickness:2px}
  .contact-bottom .contact-email-link:hover{color:#334c20;border-color:#334c20}

  .service-jumps>a:hover{background:#eaf3da;box-shadow:inset 0 -3px 0 var(--brand);color:#304b1b}
  .service-jumps>a:hover .tab-arrow{transform:translateY(3px)}
  .service-item summary:hover{background:#edf3e6;box-shadow:inset 0 -2px 0 var(--brand);color:#476620}
  .service-item summary:hover:after{color:#476620;transform:scale(1.15)}
  .service-area-dark .service-item summary:hover{background:#c7eb7112;color:#d6f394;box-shadow:inset 0 -2px 0 var(--green)}
  .service-area-dark .service-item summary:hover:after{color:#d6f394}
  .service-questions summary:hover{color:#476620;background:#eaf3da;box-shadow:inset 0 -2px 0 var(--brand)}
  .page-toc a:hover{background:#eaf3da;box-shadow:inset 0 -2px 0 var(--brand)}

  :is(.document-tabs button,.bim-example-tabs>button):hover{background:#eaf3da;color:#36531e;border-bottom-color:#799d3c}
  :is(.document-tabs button,.bim-example-tabs>button)[aria-selected=true]:hover{border-bottom-color:var(--ink)}
  .service-area-dark .bim-example-tabs>button:hover{background:#c7eb7117;color:#d6f394;border-bottom-color:var(--green)}
  .service-area-dark .bim-example-tabs>button[aria-selected=true]:hover{border-bottom-color:#d6f394}
  .gallery-filters button:not([aria-pressed=true]):hover{background:#eaf3da;border-color:#7c9b49;color:#304b1b}
  .gallery-filters button[aria-pressed=true]:hover{background:#304a37;border-color:#304a37;color:#fff}

  .service-hub-card:hover,.related-service-grid>a:hover{transform:translateY(-3px)}
  .service-hub-card:hover .service-hub-image{box-shadow:0 5px 18px #172a2026,0 0 0 2px #9bca3180}
  .service-hub-card:hover h2,.related-service-grid>a:hover h3{color:#476620}
  .related-service-grid>a:hover{border-top-color:#71972f}
  .service-hub-card:hover .ui-icon-arrow-up-right{transform:translate(2px,-2px)}
  .document-thumb:hover{background:#e0ebd1;border-color:#789d3b;box-shadow:0 5px 16px #172a201a}
  .document-thumb:hover>span{background:var(--green);color:var(--dark)}
  button.portrait-card:hover{outline:2px solid var(--green);outline-offset:2px}

  .header-socials.social-links>a:hover{background:#e5f1ce;color:#35551d;transform:translateY(-2px)}
  .footer-socials.social-links>a:hover{background:var(--green);border-color:var(--green);color:var(--dark);transform:translateY(-2px)}
  .hero-slider-buttons button:hover{background:var(--green);border-color:var(--green);color:var(--dark)}
  .hero-dots button:hover:after{background:#d6f394;height:3px}
  .menu-toggle:hover{background:#eaf3da;box-shadow:0 0 0 5px #eaf3da}
  .inquiry-dialog>.dialog-close:hover{background:#e2ebd7;color:#243b19;opacity:1;transform:rotate(6deg)}
  :is(.asset-dialog,.photo-dialog)>.dialog-close:hover{background:var(--green);color:var(--dark);opacity:1}
}

/* A short pressed state also works on touchscreens, without hover-only motion. */
:is(.button,.contact-action):not(:disabled):active{transform:translateY(0);box-shadow:inset 0 2px 5px #17221c25}
:is(.service-jumps>a,.service-hub-card,.document-thumb,.portrait-card,.gallery-filters button,.document-tabs button,.bim-example-tabs>button,.social-links>a):active{opacity:.8}
@media(hover:none){
  :is(.button,.contact-action):not(:disabled):hover{background:var(--action-bg);color:var(--action-fg);transform:none}
  .contact-main .contact-circle.contact-action:hover{background:var(--action-bg);color:var(--action-fg);transform:none}
  .contact-action:hover .contact-icon{transform:none}
  :is(.button,.contact-action):not(:disabled):active{background:var(--action-hover);color:var(--action-fg);box-shadow:inset 0 2px 5px #17221c25}
}
.button:disabled,.button:disabled:hover{background:var(--action-bg);color:var(--action-fg);transform:none;box-shadow:none}
@media(prefers-reduced-motion:reduce){
  :is(a[href],button,summary),:is(a[href],button,summary)::after,:is(a[href],button,summary) :is(.ui-icon,.contact-icon,.tab-arrow),.document-thumb>img{transition:none!important;animation:none!important}
  :is(.button,.contact-action,.service-hub-card,.related-service-grid>a,.social-links>a,.dialog-close):hover,:is(a[href],button,summary):hover :is(.ui-icon,.contact-icon,.tab-arrow),.document-thumb:hover>img,.service-item summary:hover:after{transform:none!important}
}
