/* 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(2rem, 4vw, 4rem) clamp(1.5rem, 3vw, 3rem); grid-template-columns: repeat(2, minmax(0, 1fr)); }
.project-card { min-width: 0; }
.project-card--featured { grid-column: 1 / -1; }
.project-card__link { color: inherit; display: block; height: 100%; text-decoration: none; }
.project-card--featured .project-card__link { align-items: center; display: grid; gap: clamp(1.5rem, 4vw, 4rem); grid-template-columns: minmax(0, 1.3fr) minmax(18rem, .7fr); }
.project-card__link:hover h3 { text-decoration: underline; text-decoration-thickness: .08em; text-underline-offset: .15em; }
.project-card__link:hover img { transform: scale(1.018); }
.project-card__link:focus-visible { outline-offset: .5rem; }
.project-card img { aspect-ratio: 16 / 10; background: var(--color-surface); display: block; object-fit: cover; transition: transform var(--duration-normal) var(--ease-standard); 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.75rem, 3vw, 2.75rem); line-height: var(--line-height-tight); margin: 0; max-width: 16ch; text-wrap: balance; }
.project-card--featured h3 { font-size: clamp(2.25rem, 4vw, 4rem); }
.project-card__meta { color: var(--color-text-muted); font-size: var(--font-size-sm); margin: var(--space-3) 0 0; }
.project-card__excerpt { margin: var(--space-3) 0 0; max-width: 42ch; }
.project-card__cta { display: inline-flex; font-size: var(--font-size-sm); font-weight: var(--font-weight-medium); gap: .4rem; margin-top: var(--space-4); text-decoration: underline; text-underline-offset: .25em; }
.project-card__tags { display: flex; flex-wrap: wrap; gap: var(--space-2); list-style: none; margin: var(--space-4) 0 0; padding: 0; }
.project-card__tags li { border: 1px solid currentColor; border-radius: var(--radius-pill); font-size: var(--font-size-xs); letter-spacing: .04em; padding: .3rem .65rem; text-transform: uppercase; }
.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-card--featured .project-card__link { grid-template-columns: 1fr; } }
@media (max-width: 560px) { .project-grid { grid-template-columns: 1fr; } .project-card--featured { grid-column: auto; } .global-contact { text-align: left; } .consent-panel { right: var(--space-4); } }
@media (prefers-reduced-motion: reduce) { .ui-skeleton { animation: none; } }
