/* ============================================================
   Buttons — rectilinear "cargo" language, no rounded corners.
   ============================================================ */
.btn{
  --btn-pad-y: 15px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:var(--sp-2);
  padding:var(--btn-pad-y) 28px;
  font-family:var(--font-body);
  font-size:var(--fs-sm);
  font-weight:700;
  letter-spacing:.02em;
  white-space:nowrap;
  border:1.5px solid transparent;
  transition: background-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease);
  position:relative;
}
.btn:active{ transform:translateY(1px); }
.btn svg{ width:18px; height:18px; flex:none; }

.btn-gold{
  background:var(--jodhpur-500);
  color:var(--black-950);
  overflow:hidden;
}
.btn-gold:hover{ background:var(--jodhpur-400); }
.btn-gold:active{ background:var(--jodhpur-600); }
.btn-gold::before{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(115deg, transparent 30%, rgba(255,255,255,.55) 48%, transparent 66%);
  transform:translateX(-120%);
  pointer-events:none;
}
.btn-gold:hover::before{
  transform:translateX(120%);
  transition:transform .7s var(--ease);
}
.btn-gold:not(:hover)::before{ transition:none; }

.btn-black{
  background:var(--black-900);
  color:var(--on-black);
}
.btn-black:hover{ background:var(--black-800); }

.btn-outline{
  background:transparent;
  border-color: var(--ink);
  color:var(--ink);
}
.btn-outline:hover{ border-color:var(--black-900); background:var(--black-900); color:var(--on-black); }

.on-dark .btn-outline{
  border-color: var(--line-on-black-strong);
  color:var(--on-black);
}
.on-dark .btn-outline:hover{ border-color:var(--jodhpur-400); background:var(--jodhpur-400); color:var(--black-950); }

.btn-block{ width:100%; }
.btn-lg{ padding:18px 34px; font-size:1rem; }
.btn-sm{ padding:10px 18px; font-size:var(--fs-xs); }

.btn-link{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:var(--fs-xs);
  font-weight:700;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--ink);
  padding-bottom:3px;
  border-bottom:1px solid var(--line-strong);
  transition: border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), gap var(--dur-fast) var(--ease);
}
.btn-link:hover{ border-color:var(--jodhpur-500); color:var(--jodhpur-700); gap:12px; }
.on-dark .btn-link{ color:var(--on-black); border-color:var(--line-on-black-strong); }
.on-dark .btn-link:hover{ color:var(--jodhpur-300); border-color:var(--jodhpur-400); }
.btn-link svg{ width:14px; height:14px; }

.cta-row{
  display:flex;
  flex-wrap:wrap;
  gap:var(--sp-4);
  align-items:center;
}

/* Icon button (circular — reserved for utility controls: menu close, lightbox nav, socials) */
.icon-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:44px; height:44px;
  border-radius:50%;
  border:1.5px solid var(--line-strong);
  background:color-mix(in srgb, var(--paper-raised) 49%, transparent);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  color:var(--ink);
  transition: background-color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);
  flex:none;
}
.icon-btn:hover{ background:var(--black-900); border-color:var(--black-900); color:var(--on-black); }
.icon-btn svg{ width:19px; height:19px; }
.on-dark .icon-btn{ border-color:var(--line-on-black-strong); color:var(--on-black); }
.on-dark .icon-btn:hover{ background:var(--jodhpur-400); border-color:var(--jodhpur-400); color:var(--black-950); }
