/* Buttons, kickers and shared pieces. */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 52px; padding: 0 28px; border: 1px solid transparent; border-radius: 0; font-family: var(--font-body); font-size: 16px; font-weight: 600; line-height: 1.2; text-decoration: none; cursor: pointer; transition: background-color 0.2s var(--ease), border-color 0.2s var(--ease), color 0.2s var(--ease); }
.btn--primary { background: var(--accent); color: #FFFFFF; }
.btn--primary:hover { background: var(--accent-hover); color: #FFFFFF; }
.btn--outline { background: transparent; color: var(--text); border-color: rgba(238, 241, 245, 0.45); }
.btn--outline:hover { border-color: var(--text); color: #FFFFFF; }
.btn--sm { min-height: 44px; padding: 0 20px; font-size: 15px; }
.btn--lg { min-height: 64px; padding: 0 44px; font-size: 18px; }
.kicker { display: block; font-family: var(--font-mono); font-size: 13px; font-weight: 400; letter-spacing: 0.14em; text-transform: uppercase; color: var(--accent-text); }
.kicker--muted { color: var(--text-muted); }
.mono-label { font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--text-dim); }

/* Section heading with side link */
.section-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 16px 24px; margin-bottom: 40px; }
.section-head .kicker { margin-bottom: 16px; }
.section-head__link { font-weight: 600; }

/* Header cart count */
.site-nav__count { min-width: 20px; height: 20px; padding: 0 5px; display: inline-flex; align-items: center; justify-content: center; background: var(--accent); color: #FFFFFF; font-size: 12px; font-weight: 600; line-height: 1; }
.site-nav__count.is-empty { display: none; }

/* Product card (home and shop) */
.product-grid, ul.products { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 24px; margin: 0; padding: 0; list-style: none; }
.product-card { display: flex; flex-direction: column; background: var(--surface); border: 1px solid rgba(238, 241, 245, 0.08); transition: border-color 0.2s var(--ease); }
.product-card:hover { border-color: var(--line-strong); }
.product-card__media { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: var(--bg-raised); }
.product-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s var(--ease); }
.product-card:hover .product-card__media img { transform: scale(1.03); }
.product-card__body { flex-grow: 1; display: flex; flex-direction: column; gap: 12px; padding: 28px; }
.product-card__title { font-size: clamp(26px, 2.4vw, 34px); }
.product-card__title a { text-decoration: none; }
.product-card .price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; font-size: 24px; font-weight: 600; }
.product-card .price del { order: 2; color: var(--text-dim); font-size: 17px; font-weight: 400; }
.product-card .price ins { text-decoration: none; }
.product-card__link { margin-top: auto; font-weight: 600; }

/* Social cards */
.social { border-top: 1px solid var(--line); }
.social__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1px; margin: 0; padding: 0; list-style: none; background: var(--line); border: 1px solid var(--line); }
.social__card { position: relative; display: flex; flex-direction: column; gap: 8px; min-height: 160px; padding: 28px; background: var(--bg); text-decoration: none; transition: background-color 0.2s var(--ease); }
.social__card:hover { background: var(--surface); }
.social__name { font-family: var(--font-display); font-size: 34px; font-weight: 600; text-transform: uppercase; line-height: 1; }
.social__text { color: var(--text-muted); }
.social__arrow { position: absolute; top: 24px; right: 24px; font-size: 22px; color: var(--accent-text); }

/* Contact */
.contact { border-top: 1px solid var(--line); background: var(--bg-raised); }
.contact__grid { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 40px; }
.contact__grid h2 { margin-top: 16px; }
.contact__list { display: grid; gap: 20px; margin: 0; min-width: min(100%, 360px); }
.contact__list dd { margin: 4px 0 0; color: var(--text-muted); }
