/* ── CTA BUTTON (shared) ── */
.cta_button {
  display: inline-block;
  background: linear-gradient(135deg, var(--tomato, #e8321a) 0%, var(--ember, #c0390a) 100%);
  color: var(--onDark, #f0e6d0);
  font-family: 'Roboto Mono', monospace; font-size: 13.5px;
  letter-spacing: 0.16em; text-transform: uppercase;
  padding: 15px 30px; position: relative;
  border: 1.5px solid var(--copper, #c87941);
  border-radius: 0;
  transition: color 0.25s, background 0.3s, box-shadow 0.3s, transform 0.2s;
  text-decoration: none; cursor: pointer;
  box-shadow:
    0 2px 8px rgba(0,0,0,0.4),
    inset 0 1px 0 rgba(255,255,255,0.1);
}
/* Rivet dots — all four corners */
.cta_button__rivet {
  position: absolute;
  width: 5px; height: 5px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 35%, rgba(255,255,255,0.35), var(--honey, #e0a018) 50%, rgba(122,100,40,0.8));
  box-shadow: 0 1px 1px rgba(0,0,0,0.5);
  pointer-events: none;
  z-index: 2;
}
.cta_button__rivet--tl { top: 5px; left: 6px; }
.cta_button__rivet--tr { top: 5px; right: 6px; }
.cta_button__rivet--bl { bottom: 5px; left: 6px; }
.cta_button__rivet--br { bottom: 5px; right: 6px; }
.cta_button--light .cta_button__rivet {
  background: radial-gradient(circle at 35% 35%, rgba(255,255,255,0.25), var(--rust, #8b4513) 50%, rgba(90,50,15,0.8));
}
/* Animated border wrap — top-left half */
.cta_button::before,
.cta_button::after {
  content: ''; position: absolute;
  border: 1.2px solid rgba(240,230,208,0);
  transition: border-color 0.3s, clip-path 0.4s cubic-bezier(0.25,0,0,1);
  pointer-events: none;
}
.cta_button::before {
  top: 0; left: 0; right: 0; bottom: 0;
  border-right: none; border-bottom: none;
  clip-path: inset(0 100% 100% 0);
}
/* Animated border wrap — bottom-right half */
.cta_button::after {
  top: 0; left: 0; right: 0; bottom: 0;
  border-left: none; border-top: none;
  clip-path: inset(100% 0 0 100%);
}
.cta_button:hover {
  color: var(--onDark, #f0e6d0);
  background: linear-gradient(135deg, #d84010 0%, var(--tomato, #e8321a) 100%);
  box-shadow:
    0 4px 20px rgba(200,57,10,0.4),
    0 0 40px rgba(200,57,10,0.12),
    inset 0 1px 0 rgba(255,255,255,0.15);
  transform: translateY(-1px);
}
.cta_button:hover::before { border-color: rgba(240,230,208,0.6); clip-path: inset(0 0 0 0); }
.cta_button:hover::after { border-color: rgba(240,230,208,0.6); clip-path: inset(0 0 0 0); }
.cta_button:active { transform: translateY(1px); }
/* Light variant */
.cta_button--light {
  background: transparent;
  color: var(--onLight, #180c04);
  border-color: var(--rust, #8b4513);
}
.cta_button--light:hover {
  color: var(--onLight, #180c04);
  background: rgba(139,69,19,0.08);
  box-shadow: 0 4px 20px rgba(139,69,19,0.15);
}
.cta_button--light::before, .cta_button--light::after { border-color: rgba(224,160,24,0); }
.cta_button--light:hover::before, .cta_button--light:hover::after { border-color: var(--honey, #e0a018); }
.cta_button:focus-visible { outline: 2px solid var(--honey, #e0a018); outline-offset: 3px; }
.cta_button--light:focus-visible { outline-color: var(--ember, #c0390a); }
/* Book table button — slight rounding */
.cta_button[data-booking] { border-radius: 2px; }
