:root{
  --bb-silver:#c0c0c0;
  --bb-border: rgba(192,192,192,.18);
  --bb-shadow: 0 14px 48px rgba(0,0,0,.48);
}

.bookbtn-center{
  display:flex;
  justify-content:center;
  align-items:center;
  margin: clamp(14px,3vw,28px) 0;
}

.bookbtn{
  --pad-y: 16px; --pad-x: 28px; --fs: 16px; --radius: 16px;

  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;

  padding:var(--pad-y) var(--pad-x);
  border-radius:var(--radius);
  text-decoration:none;
  line-height:1;
  font-weight:800;
  font-size:var(--fs);
  letter-spacing:.2px;
  color:#0b0e13; 
  border:1px solid var(--bb-border);
  box-shadow: var(--bb-shadow);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  transform: translateZ(0);
  transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
  overflow:hidden;
}

.bookbtn__label{
  position:relative;
  z-index:1;
}

.bookbtn__shine{
  content:"";
  position:absolute;
  inset:0;
  mix-blend-mode:screen;
  pointer-events:none;
  transition: opacity .25s ease, transform .4s ease;
  opacity:.9;
}

.bookbtn--green{
  background:
    radial-gradient(110% 140% at 20% 0%, rgba(255,255,255,.22) 0 32%, transparent 33% 100%),
    linear-gradient(135deg, #34d399 0%, #22c55e 50%, #16a34a 100%);
}
.bookbtn--green .bookbtn__shine{
  background:
    radial-gradient(120% 90% at -10% -40%, rgba(255,255,255,.5) 0 28%, transparent 29% 100%),
    radial-gradient(80% 60% at 110% 120%, rgba(255,255,255,.18) 0 22%, transparent 23% 100%);
}

.bookbtn:hover{
  transform: translateY(-2px);
  box-shadow: 0 18px 64px rgba(0,0,0,.56);
}
.bookbtn:active{
  transform: translateY(0);
  box-shadow: 0 12px 40px rgba(0,0,0,.5);
}

.bookbtn--sm{ --pad-y: 10px; --pad-x: 18px; --fs: 14px; --radius: 12px; }
.bookbtn--md{ --pad-y: 13px; --pad-x: 22px; --fs: 15px; --radius: 14px; }
.bookbtn--lg{ --pad-y: 16px; --pad-x: 28px; --fs: 16px; --radius: 16px; }
.bookbtn--xl{ --pad-y: 18px; --pad-x: 34px; --fs: 18px; --radius: 18px; }

.bookbtn--full{ display:flex; width:100%; }

@media (max-width: 560px){
  .bookbtn--xl{ --pad-y: 20px; --pad-x: 36px; --fs: 19px; }
}

.bookbtn--green{
  color:#0b0e13;   background:
    radial-gradient(110% 140% at 20% 0%, rgba(255,255,255,.22) 0 32%, transparent 33% 100%),
    linear-gradient(135deg,
      #cbe455 0%,         #b4cf32 55%,        #96a927 100%      );
  border-color: rgba(0,0,0,.08);
}

.bookbtn--green .bookbtn__shine{
  background:
    radial-gradient(120% 90% at -10% -40%, rgba(255,255,255,.55) 0 28%, transparent 29% 100%),
    radial-gradient(80% 60% at 110% 120%, rgba(255,255,255,.18) 0 22%, transparent 23% 100%);
  opacity:.95;
}

.bookbtn--green:hover{
  filter: saturate(1.02) brightness(0.98);
}
.bookbtn--green:active{
  filter: saturate(1.05) brightness(0.96);
}

@media (max-width:560px){
  .bookbtn--xl{ --pad-y: 20px; --pad-x: 36px; --fs: 19px; }
}

.bookbtn{
  position: relative;
  overflow: hidden;   animation: btnBreath 3.6s ease-in-out infinite;
}

.bookbtn::after{
  content:"";
  position:absolute;
  top:-130%;
  left:-40%;
  width:42%;
  height:320%;
  pointer-events:none;
  transform: rotate(24deg) translateX(-120%);
  background: linear-gradient(
    to right,
    transparent 0%,
    rgba(255,255,255,.65) 50%,
    transparent 100%
  );
  filter: blur(0.5px);   opacity:.0;
  animation: btnShine 4.8s ease-in-out infinite;
}

.bookbtn--green::after{
  background: linear-gradient(
    to right,
    transparent 0%,
    rgba(255,255,255,.75) 50%,
    transparent 100%
  );
}

@keyframes btnShine{
  0%   { transform: rotate(24deg) translateX(-130%); opacity: 0; }
  8%   { opacity: .95; }
  22%  { transform: rotate(24deg) translateX(130%); opacity: 0.85; }
  30%  { opacity: 0; }
  100% { transform: rotate(24deg) translateX(130%); opacity: 0; }
}
@keyframes btnBreath{
  0%,100% { filter: brightness(1); box-shadow: 0 14px 48px rgba(0,0,0,.48); }
  50%     { filter: brightness(1.04); box-shadow: 0 18px 64px rgba(0,0,0,.56); }
}

.bookbtn:hover::after{
  animation-duration: 2.6s;
}

@media (prefers-reduced-motion: reduce){
  .bookbtn, .bookbtn::after{
    animation: none !important;
  }
  .bookbtn{ filter:none; }
}
