/* Core: Button, IconButton, Badge, Tag, Card */
.deca-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-family:var(--font-display);font-weight:var(--weight-bold);letter-spacing:var(--tracking-caps);text-transform:uppercase;border:var(--border-width-thick) solid transparent;border-radius:var(--radius-control);cursor:pointer;text-decoration:none;transition:var(--transition-control);white-space:nowrap}
.deca-btn:hover{text-decoration:none}
.deca-btn--sm{height:var(--control-height-sm);padding-inline:var(--control-padding-x-sm);font-size:var(--size-micro)}
.deca-btn--md{height:var(--control-height-md);padding-inline:var(--control-padding-x-md);font-size:var(--size-caption)}
.deca-btn--lg{height:var(--control-height-lg);padding-inline:var(--control-padding-x-lg);font-size:var(--size-body-sm)}
.deca-btn--primary{background:var(--deca-blue);border-color:var(--deca-blue);color:var(--text-on-brand)}
.deca-btn--primary:hover{background:var(--deca-blue-hover);border-color:var(--deca-blue-hover);color:var(--text-on-brand)}
.deca-btn--primary:active{background:var(--deca-blue-press);border-color:var(--deca-blue-press)}
.deca-btn--secondary{background:transparent;border-color:var(--deca-blue);color:var(--deca-blue)}
.deca-btn--secondary:hover{background:var(--deca-blue-tint-08);color:var(--deca-blue-press);border-color:var(--deca-blue-press)}
.deca-btn--secondary:active{background:var(--deca-blue-tint-16)}
.deca-btn--ghost{background:transparent;border-color:transparent;color:var(--deca-blue)}
.deca-btn--ghost:hover{background:var(--deca-blue-tint-08);color:var(--deca-blue-press)}
.deca-btn--ghost:active{background:var(--deca-blue-tint-16)}
.deca-btn--inverse{background:var(--deca-white);border-color:var(--deca-white);color:var(--deca-blue)}
.deca-btn--inverse:hover{background:var(--deca-blue-tint-08);border-color:var(--deca-blue-tint-08);color:var(--deca-blue-press)}
.deca-btn--inverse-outline{background:transparent;border-color:var(--deca-white);color:var(--deca-white)}
.deca-btn--inverse-outline:hover{background:rgba(255,255,255,.14);color:var(--deca-white)}
.deca-btn--gold{background:var(--deca-gold);border-color:var(--deca-gold);color:var(--deca-white)}
.deca-btn--gold:hover{background:#6f6241;border-color:#6f6241;color:var(--deca-white)}
.deca-btn--block{width:100%}
.deca-btn[disabled],.deca-btn--disabled{opacity:.42;cursor:not-allowed;pointer-events:none}
.deca-btn__icon{display:inline-flex;flex:none}

.deca-iconbtn{display:inline-flex;align-items:center;justify-content:center;border:var(--border-width) solid transparent;border-radius:var(--radius-control);background:transparent;color:var(--text-body);cursor:pointer;transition:var(--transition-control);padding:0}
.deca-iconbtn--sm{width:32px;height:32px}
.deca-iconbtn--md{width:42px;height:42px}
.deca-iconbtn--lg{width:52px;height:52px}
.deca-iconbtn--plain:hover{background:var(--surface-hover);color:var(--text-strong)}
.deca-iconbtn--plain:active{background:var(--surface-press)}
.deca-iconbtn--outline{border-color:var(--border-default);color:var(--text-body)}
.deca-iconbtn--outline:hover{border-color:var(--deca-blue);color:var(--deca-blue);background:var(--deca-blue-tint-08)}
.deca-iconbtn--solid{background:var(--deca-blue);border-color:var(--deca-blue);color:var(--text-on-brand)}
.deca-iconbtn--solid:hover{background:var(--deca-blue-hover);border-color:var(--deca-blue-hover)}
.deca-iconbtn--inverse{color:var(--text-inverse)}
.deca-iconbtn--inverse:hover{background:rgba(255,255,255,.16)}
.deca-iconbtn[disabled]{opacity:.42;cursor:not-allowed}

.deca-badge{display:inline-flex;align-items:center;gap:var(--space-1);font-family:var(--font-display);font-weight:var(--weight-bold);font-size:var(--size-micro);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;padding:5px 9px;border-radius:var(--radius-xs);line-height:1}
.deca-badge--brand{background:var(--deca-blue);color:var(--text-on-brand)}
.deca-badge--brand-tint{background:var(--deca-blue-tint-16);color:var(--deca-blue-press)}
.deca-badge--gold{background:var(--deca-gold);color:var(--deca-white)}
.deca-badge--silver{background:var(--deca-silver);color:var(--deca-white)}
.deca-badge--neutral{background:var(--gray-100);color:var(--gray-700)}
.deca-badge--success{background:var(--status-success-tint);color:var(--status-success)}
.deca-badge--warning{background:var(--status-warning-tint);color:var(--status-warning)}
.deca-badge--danger{background:var(--status-danger-tint);color:var(--status-danger)}
.deca-badge--outline{background:transparent;color:var(--deca-blue);box-shadow:inset 0 0 0 var(--border-width) var(--deca-blue)}

.deca-tag{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-body);font-size:var(--size-body-sm);font-weight:var(--weight-semibold);color:var(--text-body);background:var(--surface-subtle);border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-pill);padding:5px 12px;line-height:1.3;transition:var(--transition-control)}
.deca-tag--selected{background:var(--deca-blue);border-color:var(--deca-blue);color:var(--text-on-brand)}
.deca-tag--interactive{cursor:pointer}
.deca-tag--interactive:hover{border-color:var(--deca-blue);color:var(--deca-blue)}
.deca-tag--selected.deca-tag--interactive:hover{color:var(--text-on-brand);background:var(--deca-blue-hover)}
.deca-tag__remove{display:inline-flex;border:0;background:transparent;padding:0;cursor:pointer;color:inherit;opacity:.7}
.deca-tag__remove:hover{opacity:1}

.deca-card{background:var(--surface-card);border:var(--border-width) solid var(--card-border);border-radius:var(--card-radius);box-shadow:var(--card-shadow);display:flex;flex-direction:column;transition:var(--transition-surface);position:relative}
.deca-card--flat{border:0}
.deca-card--raised{border-color:transparent;box-shadow:var(--shadow-sm)}
.deca-card--brand{background:var(--deca-blue);border-color:var(--deca-blue);color:var(--text-inverse)}
.deca-card--brand h1,.deca-card--brand h2,.deca-card--brand h3,.deca-card--brand h4{color:var(--text-inverse)}
.deca-card--deep{background:var(--surface-deep);border-color:var(--surface-deep);color:var(--text-inverse)}
.deca-card--deep h1,.deca-card--deep h2,.deca-card--deep h3,.deca-card--deep h4{color:var(--text-inverse)}
.deca-card--subtle{background:var(--surface-subtle);border-color:transparent}
.deca-card--interactive{cursor:pointer}
.deca-card--interactive:hover{box-shadow:var(--shadow-md);border-color:var(--border-default)}
.deca-card--interactive:active{box-shadow:var(--shadow-xs)}
.deca-card--accent::before{content:"";position:absolute;inset:0 0 auto 0;height:var(--rule-accent-width);background:var(--accent-rule)}
.deca-card__media{display:block;width:100%;object-fit:cover;border-radius:var(--radius-media)}
.deca-card__body{padding:var(--card-padding);display:flex;flex-direction:column;gap:var(--space-3)}
.deca-card__footer{padding:var(--space-4) var(--card-padding);border-top:var(--border-width) solid var(--border-subtle);display:flex;align-items:center;gap:var(--space-3)}
.deca-card--brand .deca-card__footer,.deca-card--deep .deca-card__footer{border-top-color:var(--border-inverse)}
