/* Shared components consume tokens; page composition remains in style.css. */
.ui-button, .wp-element-button { align-items: center; background: var(--color-action); border: 1px solid transparent; border-radius: var(--radius-pill); color: var(--color-neutral-950); cursor: pointer; display: inline-flex; font-weight: var(--font-weight-medium); gap: var(--space-2); justify-content: center; min-height: 44px; padding: var(--space-3) var(--space-6); text-decoration: none; transition: background-color var(--duration-fast) var(--ease-standard), color var(--duration-fast) var(--ease-standard); }
.ui-button--secondary { background: transparent; border-color: currentColor; color: inherit; }
.ui-button:is(:disabled, [aria-disabled="true"]) { cursor: not-allowed; opacity: .45; }
.ui-tag { border: var(--border-subtle); border-radius: var(--radius-pill); display: inline-flex; font-size: var(--font-size-xs); font-weight: var(--font-weight-medium); letter-spacing: .06em; padding: var(--space-2) var(--space-3); text-transform: uppercase; }
.ui-alert { border-inline-start: .25rem solid var(--color-action); padding: var(--space-4) var(--space-6); }
.ui-alert--error { border-color: var(--color-error); }
.ui-breadcrumbs { font-size: var(--font-size-sm); }
.ui-breadcrumbs ol { display: flex; flex-wrap: wrap; gap: var(--space-2); list-style: none; padding: 0; }
.ui-skeleton { animation: ui-pulse 1.4s ease-in-out infinite; background: color-mix(in srgb, currentColor 10%, transparent); border-radius: var(--radius-sm); min-height: 4rem; }
.project-grid { display: grid; gap: clamp(1rem, 3vw, 2.5rem); grid-template-columns: repeat(3, minmax(0, 1fr)); }
.project-card { min-width: 0; }
.project-card__link { color: inherit; display: block; text-decoration: none; }
.project-card__link:hover h3 { text-decoration: underline; text-decoration-thickness: .08em; text-underline-offset: .15em; }
.project-card img, .project-card__placeholder { aspect-ratio: 4 / 3; background: var(--color-surface); display: block; object-fit: cover; width: 100%; }
.project-card__body { padding-block: var(--space-4); }
.project-card__area { color: var(--color-text-muted); font-size: var(--font-size-xs); letter-spacing: .08em; margin: 0 0 var(--space-2); text-transform: uppercase; }
.project-card h3 { font-family: var(--font-display); font-size: clamp(1.5rem, 2.5vw, 2.25rem); line-height: var(--line-height-tight); margin: 0; }
.project-card h3 + p { margin-top: var(--space-3); }
.project-grid__empty { border: var(--border-subtle); padding: var(--space-8); }
.global-contact { font-size: var(--font-size-sm); text-align: right; }
.global-contact p { margin: 0; }
.consent-panel { background: var(--color-canvas); border: var(--border-subtle); bottom: var(--space-4); box-shadow: 0 .5rem 2rem color-mix(in srgb, #000 18%, transparent); color: var(--color-text); left: var(--space-4); max-width: 36rem; padding: var(--space-6); position: fixed; z-index: var(--z-dialog); }
.consent-panel[hidden] { display: none; }
.consent-panel__actions { display: flex; flex-wrap: wrap; gap: var(--space-3); margin-top: var(--space-4); }
.privacy-settings { background: transparent; border: 0; color: inherit; cursor: pointer; font: inherit; font-size: var(--font-size-xs); margin: var(--space-2); text-decoration: underline; text-underline-offset: .2em; }
@keyframes ui-pulse { 50% { opacity: .45; } }
@media (max-width: 781px) { .project-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .project-grid { grid-template-columns: 1fr; } .global-contact { text-align: left; } .consent-panel { right: var(--space-4); } }
@media (prefers-reduced-motion: reduce) { .ui-skeleton { animation: none; } }
