/* Golden Pint — component styles (v2, classic). Needs tokens.css. Classes are prefixed gp-. */
.gp-root, .gp-root * { box-sizing: border-box; }
body { font-family: var(--font-serif); color: var(--ink); background: var(--surface-000); }

/* Label: the house caps line */
.gp-label { font: 700 13px/16px var(--font-display); letter-spacing: .14em; text-transform: uppercase; }

/* Ornament rule: hairline — brass diamond — hairline */
.gp-rule { display:flex; align-items:center; gap:var(--space-3); color:var(--brass); }
.gp-rule::before, .gp-rule::after { content:""; flex:1; height:1px; background:currentColor; }
.gp-rule__gem { width:8px; height:8px; transform:rotate(45deg); background:currentColor; flex:none; }

/* Double frame: echoes the sticker outline of the logo */
.gp-frame { border:1px solid var(--brass); padding:var(--space-1); border-radius:var(--radius-md); }
.gp-frame > .gp-frame__inner { border:1px solid var(--brass); border-radius:var(--radius-sm); }

/* Button */
.gp-btn { display:inline-flex; align-items:center; justify-content:center; gap:var(--space-2);
  height:52px; padding:0 var(--space-8); border-radius:var(--radius-sm); border:1px solid transparent;
  font:700 14px/16px var(--font-display); letter-spacing:.14em; text-transform:uppercase; cursor:pointer; text-decoration:none;
  transition:background-color 160ms ease-out, border-color 160ms ease-out, color 160ms ease-out; }
.gp-btn:focus-visible { outline:2px solid var(--focus); outline-offset:2px; }
.gp-btn--primary { background:var(--oxblood); color:var(--on-oxblood); box-shadow:inset 0 0 0 3px var(--oxblood), inset 0 0 0 4px rgba(255,255,255,.35); }
.gp-btn--primary:hover { filter:brightness(1.12); }
.gp-btn--secondary { background:transparent; color:var(--ink); border-color:var(--ink); }
.gp-btn--secondary:hover { background:var(--ink); color:var(--surface-000); }
.gp-btn--light { background:var(--foam); color:var(--on-foam); }
.gp-btn--light:hover { filter:brightness(1.05); }
.gp-btn--ghost { background:transparent; color:var(--ale-text); padding:0 var(--space-2); height:auto; border-bottom:1px solid currentColor; border-radius:0; }
.gp-btn--s { height:40px; padding:0 var(--space-6); font-size:12px; }
.gp-btn[disabled] { opacity:.45; cursor:not-allowed; }

/* Tag */
.gp-tag { display:inline-flex; align-items:center; height:24px; padding:0 var(--space-2);
  border-radius:var(--radius-sm); font:700 11px/16px var(--font-display); letter-spacing:.14em; text-transform:uppercase;
  color:var(--ink); border:1px solid var(--line-strong); background:transparent; }
.gp-tag--foam { background:var(--foam); color:var(--on-foam); border-color:var(--foam); }
.gp-tag--new { color:var(--ale-text); border-color:currentColor; }
.gp-tag--hit { background:var(--oxblood); color:var(--on-oxblood); border-color:var(--oxblood); }
.gp-tag--out { color:var(--danger); border-color:currentColor; }

/* Menu item: classic menu row with dotted leader */
.gp-menu { background:var(--surface-100); border-radius:var(--radius-md); padding:var(--space-2) var(--space-8); }
.gp-item { display:grid; grid-template-columns:auto 1fr auto; column-gap:var(--space-3); row-gap:var(--space-1); align-items:baseline;
  padding:var(--space-6) 0; border-bottom:1px solid var(--line); }
.gp-item:last-child { border-bottom:0; }
.gp-item__name { grid-column:1; grid-row:1; font:700 22px/28px var(--font-display); margin:0; color:var(--ink); }
.gp-item__leader { grid-column:2; grid-row:1; border-bottom:2px dotted var(--line-strong); height:0; align-self:end; margin-bottom:7px; }
.gp-item__prices { grid-column:3; grid-row:1; display:flex; gap:var(--space-6); font:700 22px/28px var(--font-serif); font-variant-numeric:tabular-nums lining-nums; }
.gp-item__vol { font:700 11px/16px var(--font-display); letter-spacing:.14em; color:var(--ink-muted); margin-right:var(--space-1); }
.gp-item__meta { grid-column:1 / span 3; grid-row:2; font:400 15px/22px var(--font-serif); color:var(--ink-muted); margin:0; }
.gp-item__tags { grid-column:1 / span 3; grid-row:3; display:flex; gap:var(--space-2); flex-wrap:wrap; margin-top:var(--space-1); }
.gp-item--featured .gp-item__name { color:var(--oxblood-text); }

/* Event card */
.gp-event { display:grid; grid-template-columns:104px 1fr; gap:var(--space-6); background:var(--stout); color:var(--foam);
  border-radius:var(--radius-md); padding:var(--space-6); max-width:560px; box-shadow:inset 0 0 0 6px var(--stout), inset 0 0 0 7px var(--gilt); }
.gp-event__date { display:flex; flex-direction:column; align-items:center; justify-content:center; background:var(--oxblood);
  color:var(--on-oxblood); border-radius:var(--radius-sm); padding:var(--space-3) 0; }
.gp-event__day { font:900 44px/44px var(--font-display); }
.gp-event__month { font:700 11px/16px var(--font-display); letter-spacing:.14em; text-transform:uppercase; }
.gp-event__eyebrow { font:700 12px/16px var(--font-display); letter-spacing:.14em; text-transform:uppercase; color:var(--gilt); margin:0 0 var(--space-2); }
.gp-event__title { font:900 30px/34px var(--font-display); letter-spacing:.01em; text-transform:uppercase; margin:0 0 var(--space-2); color:var(--foam); }
.gp-event__meta { font:400 15px/22px var(--font-serif); margin:0 0 var(--space-4); color:var(--foam); }

/* Field */
.gp-field { display:flex; flex-direction:column; gap:var(--space-2); max-width:360px; }
.gp-field__label { font:700 12px/16px var(--font-display); letter-spacing:.14em; text-transform:uppercase; color:var(--ink); }
.gp-field__input { height:48px; padding:0 var(--space-4); border:1px solid var(--line-strong); border-radius:var(--radius-sm);
  background:var(--surface-000); color:var(--ink); font:400 17px/24px var(--font-serif); }
textarea.gp-field__input { height:auto; min-height:120px; padding:var(--space-3) var(--space-4); resize:vertical; }
.gp-field__input::placeholder { color:var(--ink-muted); }
.gp-field__input:focus { outline:2px solid var(--focus); outline-offset:2px; }
.gp-field__hint { font:400 14px/20px var(--font-serif); color:var(--ink-muted); }
.gp-field--error .gp-field__input { border-color:var(--danger); border-width:2px; }
.gp-field--error .gp-field__hint { color:var(--danger); }

/* Header */
.gp-header { display:flex; align-items:center; gap:var(--space-8); height:96px; padding:0 var(--space-6);
  background:var(--surface-000); border-bottom:4px double var(--brass); }
.gp-header__logo { display:block; height:72px; width:auto; }
.gp-nav { display:flex; gap:var(--space-6); flex:1; }
.gp-nav a { font:700 13px/16px var(--font-display); letter-spacing:.14em; text-transform:uppercase; color:var(--ink); text-decoration:none; padding:var(--space-2) 0; border-bottom:2px solid transparent; }
.gp-nav a:hover { color:var(--oxblood-text); }
.gp-nav a[aria-current="page"] { color:var(--oxblood-text); border-bottom-color:var(--oxblood-text); }
.gp-header__phone { font:700 18px/24px var(--font-serif); color:var(--ink); text-decoration:none; font-variant-numeric:lining-nums; }
