/* Booking funnel — matches site blue light theme */
.book-page{
  --bf-ink:var(--blue-950, #061a44);
  --bf-blue:var(--blue-600, #1e66ff);
  --bf-soft:var(--blue-100, #e8f1ff);
  --bf-line:rgba(30,102,255,.16);
  --bf-ok:#15803d;
  min-height:100dvh;
  color:var(--bf-ink);
  background:
    radial-gradient(ellipse 80% 50% at 0% 0%, rgba(30,102,255,.14), transparent 55%),
    radial-gradient(ellipse 70% 45% at 100% 10%, rgba(57,255,20,.08), transparent 50%),
    linear-gradient(180deg, #f7faff 0%, #eef4ff 45%, #f8fbff 100%);
}
.book-page .header{
  background:rgba(255,255,255,.92);
  border-bottom:1px solid var(--bf-line);
  backdrop-filter:blur(10px);
}
.book-mobile-bar{
  display:none;
  margin:0 0 12px;
}
.book-mobile-back{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:10px 14px;
  border-radius:12px;
  background:rgba(255,255,255,.92);
  border:1px solid var(--bf-line, rgba(30,102,255,.16));
  color:var(--bf-blue, #1e66ff);
  font-weight:800;
  text-decoration:none;
  box-shadow:0 6px 18px rgba(6,26,68,.06);
}
@media (max-width:1024px){
  .book-mobile-bar{ display:block; }
  .book-page .book-back{ display:none; }
}
.book-page .menu-btn{
  color:var(--bf-ink, #061a44);
}
.book-shell{
  width:min(920px, calc(100% - 28px));
  margin:0 auto;
  padding:14px 0 max(40px, env(safe-area-inset-bottom));
}
.book-page[data-book-step="milk"] .book-shell{
  width:min(720px, calc(100% - 28px));
}
/* Web/desktop only: larger cow & buffalo video frames */
@media (min-width: 901px){
  .book-page[data-book-step="milk"] .book-shell{
    width:min(1040px, calc(100% - 40px));
  }
  .book-page[data-book-step="milk"] .book-stage{
    max-width:980px;
    gap:28px;
  }
  .book-page[data-book-step="milk"] .book-reel{
    border-radius:28px;
  }
  .book-page[data-book-step="milk"] .book-reel__viewport{
    height:clamp(360px, 38vw, 460px);
  }
  .book-page[data-book-step="milk"] .book-reel__name{
    font-size:1.2rem;
  }
  .book-page[data-book-step="milk"] .book-reel__go{
    padding:10px 16px;
    font-size:.8rem;
  }
  .book-page[data-book-step="milk"] .book-hero h1{
    font-size:clamp(1.45rem, 2.2vw, 1.85rem);
  }
}
.book-page[data-book-step="checkout"] .book-shell{
  width:min(980px, calc(100% - 28px));
}
.book-page[data-book-step="plans"] .book-shell{
  width:min(980px, calc(100% - 28px));
}
a.book-entry-card,
div.book-entry-card{
  cursor:pointer;
}
.book-steps{
  display:none !important;
}
.book-plan__meta{
  margin:4px 0 0;
  display:grid;
  gap:8px;
}
.book-plan__head{
  display:grid;
  gap:4px;
  min-width:0;
}
.book-plan__head-label{
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:rgba(6,26,68,.48);
}
.book-plan__name{
  margin:0;
  font-size:.95rem;
  line-height:1.3;
  color:var(--bf-ink);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.book-plan__meta > div{
  display:grid;
  grid-template-columns:minmax(72px, 34%) 1fr;
  gap:8px;
  align-items:baseline;
  font-size:.88rem;
}
.book-plan__meta dt{
  margin:0;
  font-weight:800;
  color:rgba(6,26,68,.5);
  text-transform:capitalize;
}
.book-plan__meta dd{
  margin:0;
  font-weight:800;
  color:var(--bf-ink);
  text-align:right;
}
.book-plan__name{
  margin:0;
  font-size:.95rem;
  line-height:1.3;
  color:var(--bf-ink);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.book-plan__pack{
  margin:0; font-size:.8rem; font-weight:700; color:rgba(6,26,68,.55);
}
.book-plan__sub{ margin:0; font-size:.84rem; color:rgba(6,26,68,.58); }
.book-plan__price{
  margin-top:auto; padding-top:6px;
  font-size:1.4rem; font-weight:900; color:var(--bf-blue);
  font-variant-numeric:tabular-nums;
}
.book-plan__cta{
  font-size:.76rem; font-weight:800; color:var(--bf-blue); letter-spacing:.04em; text-transform:uppercase;
}
.book-loading,.book-empty{
  padding:28px 16px; text-align:center; border-radius:18px;
  background:rgba(255,255,255,.85); border:1px dashed var(--bf-line); color:rgba(6,26,68,.65);
}
.book-milk-tag{
  display:inline-flex; margin:0 0 10px; padding:6px 12px; border-radius:999px;
  background:rgba(30,102,255,.1); border:1px solid var(--bf-line);
  font-size:.78rem; font-weight:800; color:var(--bf-blue);
}

/* Checkout — wider on web */
.book-page[data-book-step="checkout"] .book-shell{
  width:min(980px, calc(100% - 28px));
}
.book-checkout{
  display:grid;
  gap:14px;
  max-width:920px;
  margin:0 auto;
}
@media (min-width:900px){
  .book-checkout{
    grid-template-columns:minmax(0, 1.05fr) minmax(0, 1fr);
    align-items:start;
    max-width:920px;
    gap:18px;
  }
}
.book-card{
  padding:16px; border-radius:18px;
  background:rgba(255,255,255,.94); border:1px solid var(--bf-line);
  box-shadow:0 10px 26px rgba(6,26,68,.06);
}
.book-card h2{
  margin:0 0 12px; font-size:.82rem; letter-spacing:.08em; text-transform:uppercase; color:var(--blue-700);
}
.book-bill__rows{ list-style:none; margin:0; padding:0; display:grid; gap:10px; }
.book-bill__rows li{
  display:flex; justify-content:space-between; gap:12px; align-items:flex-start;
  font-size:.92rem; color:rgba(6,26,68,.72);
}
.book-bill__free{
  display:inline-flex; align-items:center; gap:8px;
  color:var(--bf-ok); font-weight:800; white-space:nowrap;
}
.book-bill__was{
  position:relative;
  color:rgba(6,26,68,.5);
  font-weight:700;
  text-decoration:line-through;
  text-decoration-thickness:1.25px;
  text-decoration-color:rgba(225,29,72,.75);
  padding-inline:1px;
}
.book-bill__was::after{
  content:"";
  position:absolute; left:0; right:0; top:52%;
  height:1px; background:rgba(225,29,72,.7); transform:rotate(-6deg);
  pointer-events:none;
}
.book-bill__now{ color:var(--bf-ok); font-weight:900; }
.book-bill__note{
  display:block;
  margin-top:3px;
  font-style:normal;
  font-size:.72rem;
  font-weight:700;
  color:rgba(6,26,68,.55);
}
.book-bill__savings{
  display:flex; justify-content:space-between; align-items:center; gap:12px;
  margin-top:14px; padding:14px 16px; border-radius:16px;
  background:
    linear-gradient(135deg, rgba(22,163,74,.14), rgba(30,102,255,.12)),
    #fff;
  border:1.5px solid rgba(22,163,74,.28);
  box-shadow:0 10px 28px rgba(22,163,74,.12);
  animation:book-save-pulse 2.4s ease-in-out infinite;
}
.book-bill__savings-copy{
  display:flex; flex-direction:column; gap:4px; min-width:0;
}
.book-bill__savings-badge{
  align-self:flex-start;
  font-size:.65rem; font-weight:900; letter-spacing:.1em; text-transform:uppercase;
  color:#fff; background:linear-gradient(135deg, #16a34a, #15803d);
  border-radius:999px; padding:3px 8px;
}
.book-bill__savings-label{
  font-size:.9rem; font-weight:800; color:var(--bf-ink);
}
.book-bill__savings-amt{
  font-size:clamp(1.25rem, 3vw, 1.55rem); font-weight:900; color:#15803d;
  font-variant-numeric:tabular-nums;
}
@keyframes book-save-pulse{
  0%,100%{ box-shadow:0 8px 24px rgba(21,128,61,.08); }
  50%{ box-shadow:0 10px 28px rgba(30,102,255,.14); }
}
.book-bill__total{
  display:flex; justify-content:space-between; margin-top:12px; padding-top:12px;
  border-top:1px dashed rgba(30,102,255,.28); font-size:1.08rem; font-weight:900; color:var(--bf-ink);
}

.book-page .nav__cta .btn--take-subscription,
.book-page .nav__cta .btn--take-subscription--header{
  display:none !important;
}
.book-steps__item{
  display:inline-flex; align-items:center; gap:8px;
  padding:7px 12px; border-radius:999px;
  font-size:.72rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase;
  color:rgba(6,26,68,.45); background:rgba(255,255,255,.7); border:1px solid var(--bf-line);
}
.book-steps__item.is-active{
  color:var(--bf-ink); background:rgba(30,102,255,.12); border-color:rgba(30,102,255,.35);
}
.book-steps__item.is-done{ color:var(--bf-ok); border-color:rgba(21,128,61,.28); background:rgba(57,255,20,.1); }
.book-steps__num{
  width:20px;height:20px;border-radius:50%; display:inline-grid; place-items:center;
  background:rgba(30,102,255,.1); font-size:.7rem;
}
.book-steps__item.is-active .book-steps__num{ background:var(--bf-blue); color:#fff; }
.book-hero{ text-align:center; margin:0 0 14px; }
.book-hero h1{
  margin:0; font-size:clamp(1.2rem, 3.2vw, 1.65rem); color:var(--bf-ink); letter-spacing:-.02em;
}
.book-back{
  display:inline-flex; gap:6px; margin:0 0 12px; color:var(--bf-blue);
  text-decoration:none; font-weight:700; font-size:.9rem;
}

/* Video-like offer stage — compact on desktop/web */
.book-stage{
  display:grid; grid-template-columns:1fr 1fr; gap:clamp(12px, 2.4vw, 18px);
  max-width:640px;
  margin:0 auto;
}
@media (max-width:760px){
  .book-stage{ grid-template-columns:1fr; max-width:360px; margin:0 auto; }
}
.book-reel{
  position:relative; display:block; border:none; padding:0; margin:0; width:100%;
  border-radius:clamp(16px, 2.5vw, 22px); overflow:hidden; cursor:pointer;
  background:#fff; border:1.5px solid var(--bf-line);
  box-shadow:0 14px 32px rgba(6,26,68,.1);
  text-align:left; color:inherit; font:inherit;
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.book-reel.is-preferred{
  border-color:rgba(30,102,255,.45);
  box-shadow:0 16px 36px rgba(30,102,255,.18);
}
.book-reel:hover,
.book-reel:focus-visible{
  transform:translateY(-3px);
  border-color:rgba(30,102,255,.4);
  box-shadow:0 20px 44px rgba(30,102,255,.16);
  outline:none;
}
.book-reel__viewport{
  position:relative;
  overflow:hidden;
  height:clamp(180px, 32vw, 240px);
  background:linear-gradient(165deg, #fff 0%, var(--bf-soft) 100%);
}
@media (max-width:760px){
  .book-reel__viewport{
    height:auto;
    aspect-ratio:1/1;
  }
}
.book-reel__img{
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; object-position:center 12%;
  transform-origin:58% 62%;
  animation:book-offer 3.8s ease-in-out infinite;
  will-change:transform;
}
.book-reel--buffalo .book-reel__img{ animation-delay:-1.6s; object-position:center 8%; }
.book-reel.is-playing .book-reel__img{
  animation:book-offer-fast 1.35s ease-in-out infinite;
}
@keyframes book-offer{
  0%,100%{ transform:scale(1) translate(0,0) rotate(0deg); }
  35%{ transform:scale(1.05) translate(2%, -3%) rotate(-1deg); }
  55%{ transform:scale(1.08) translate(4%, -5%) rotate(1.2deg); }
  75%{ transform:scale(1.04) translate(2%, -2%) rotate(-.5deg); }
}
@keyframes book-offer-fast{
  0%,100%{ transform:scale(1.04) translate(1%, -2%) rotate(-.8deg); }
  50%{ transform:scale(1.12) translate(5%, -7%) rotate(1.4deg); }
}
.book-reel__glow{
  position:absolute; inset:auto 8% 10% 8%; height:28%; z-index:1; pointer-events:none;
  background:radial-gradient(ellipse at center, rgba(30,102,255,.22), transparent 70%);
  animation:book-glow 3.8s ease-in-out infinite;
}
@keyframes book-glow{
  0%,100%{ opacity:.35; transform:scaleX(.9); }
  50%{ opacity:.9; transform:scaleX(1.08); }
}
.book-reel__badge{
  position:absolute; top:12px; left:12px; z-index:3;
  padding:6px 10px; border-radius:999px;
  background:rgba(255,255,255,.92); border:1px solid var(--bf-line);
  font-size:.68rem; font-weight:900; letter-spacing:.1em; text-transform:uppercase; color:var(--bf-blue);
}
.book-reel__footer{
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  padding:12px 14px 14px; background:#fff; border-top:1px solid rgba(30,102,255,.1);
}
.book-reel__name{ margin:0; font-size:1rem; font-weight:900; color:var(--bf-ink); }
.book-reel__go{
  border:none; border-radius:999px; padding:8px 12px; cursor:pointer;
  background:linear-gradient(135deg, var(--bf-blue), #2b7bff); color:#fff;
  font-size:.74rem; font-weight:800; letter-spacing:.04em; text-transform:uppercase;
}

/* Plans — tile grid (web + mobile) */
.book-plans{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(min(100%, 220px), 1fr));
  gap:14px;
  align-items:stretch;
}
@media (min-width:900px){
  .book-plans{
    grid-template-columns:repeat(3, minmax(0, 1fr));
  }
}
@media (min-width:700px) and (max-width:899px){
  .book-plans{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}
.book-plan,
.book-plan--tile{
  position:relative;
  display:flex; flex-direction:column; gap:8px;
  min-height:100%;
  padding:16px 14px 14px;
  border-radius:18px;
  text-decoration:none; color:inherit;
  background:
    linear-gradient(160deg, rgba(255,255,255,.98), rgba(232,241,255,.92));
  border:1.5px solid var(--bf-line);
  box-shadow:0 10px 28px rgba(6,26,68,.07);
  overflow:hidden;
  transition:transform .22s ease, border-color .22s ease, box-shadow .22s ease;
}
.book-plan::before,
.book-plan--tile::before{
  content:""; position:absolute; inset:0 auto auto 0; width:100%; height:4px;
  background:linear-gradient(90deg, var(--bf-blue), #39ff14);
}
.book-plan:hover,
.book-plan:focus-visible,
.book-plan--tile:hover,
.book-plan--tile:focus-visible{
  transform:translateY(-3px);
  border-color:rgba(30,102,255,.42);
  box-shadow:0 16px 36px rgba(30,102,255,.14);
  outline:none;
}
.book-plan__badge{
  align-self:flex-start;
  font-size:.66rem; font-weight:900; letter-spacing:.1em; text-transform:uppercase;
  color:var(--bf-ok); background:rgba(57,255,20,.14);
  border:1px solid rgba(21,128,61,.22); border-radius:999px; padding:4px 9px;
}
.book-plan__price{
  margin-top:auto; padding-top:6px;
  font-size:1.4rem; font-weight:900; color:var(--bf-blue);
  font-variant-numeric:tabular-nums;
}
.book-plan__cta{
  font-size:.76rem; font-weight:800; color:var(--bf-blue); letter-spacing:.04em; text-transform:uppercase;
}
.book-promo{
  margin-top:16px; padding:14px; border-radius:18px;
  background:linear-gradient(145deg, rgba(30,102,255,.06), rgba(57,255,20,.06));
  border:1px dashed rgba(30,102,255,.28);
}
.book-promo__label{
  display:block; margin:0 0 8px; font-size:.78rem; font-weight:800;
  letter-spacing:.06em; text-transform:uppercase; color:var(--blue-700);
}
.book-promo__row{ display:flex; gap:8px; }
.book-promo__row input{
  flex:1; min-width:0; border-radius:14px; border:1.5px solid rgba(30,102,255,.22);
  background:#fff; color:var(--bf-ink); padding:12px 14px; font:inherit;
  text-transform:uppercase; letter-spacing:.06em;
}
.book-promo__row input:focus{
  outline:2px solid rgba(30,102,255,.3); border-color:var(--bf-blue);
}
.book-promo__msg{ margin:8px 0 0; font-size:.86rem; min-height:1.1em; }
.book-promo__msg.is-err{ color:#b91c1c; font-weight:700; }
.book-gift[hidden]{ display:none !important; }
.book-gift{
  margin-top:14px; padding:0; border-radius:20px; overflow:hidden;
  border:1.5px solid rgba(21,128,61,.3);
  background:linear-gradient(145deg, #ecfdf5, #eff6ff);
  box-shadow:0 12px 32px rgba(30,102,255,.1);
  animation:book-gift-pop .7s cubic-bezier(.22,1,.36,1);
}
.book-gift__inner{ padding:16px 16px 14px; position:relative; }
.book-gift__burst{
  position:absolute; inset:-20%; pointer-events:none; opacity:.55;
  background:
    radial-gradient(circle at 20% 30%, rgba(57,255,20,.35), transparent 28%),
    radial-gradient(circle at 80% 20%, rgba(30,102,255,.28), transparent 26%),
    radial-gradient(circle at 60% 80%, rgba(250,204,21,.25), transparent 30%);
  animation:book-burst 1.4s ease-out;
}
.book-gift__eyebrow{
  margin:0 0 6px; font-size:.72rem; font-weight:900; letter-spacing:.14em;
  text-transform:uppercase; color:var(--bf-ok);
}
.book-gift__title{
  margin:0 0 8px; font-size:clamp(1.05rem, 3.4vw, 1.35rem); line-height:1.25;
  color:var(--bf-ink); font-weight:900;
}
.book-gift__body{ margin:0; color:rgba(6,26,68,.7); font-size:.9rem; line-height:1.45; }
@keyframes book-burst{
  0%{ transform:scale(.6); opacity:0; }
  40%{ opacity:.7; }
  100%{ transform:scale(1.15); opacity:0; }
}

/* Full-page surprise gift celebration */
.book-gift-overlay{
  position:fixed; inset:0; z-index:12000;
  display:grid; place-items:center;
  padding:max(16px, env(safe-area-inset-top)) 16px max(16px, env(safe-area-inset-bottom));
}
.book-gift-overlay[hidden]{ display:none !important; }
.book-gift-overlay__backdrop{
  position:absolute; inset:0;
  background:rgba(6,26,68,.55);
  backdrop-filter:blur(8px);
  animation:book-gift-fade .35s ease;
}
.book-gift-overlay__confetti{
  position:absolute; inset:0; overflow:hidden; pointer-events:none;
}
.book-gift-overlay__piece{
  position:absolute;
  top:-12%;
  left:calc(4% + (var(--i) * 3.4%));
  width:10px; height:16px;
  border-radius:3px;
  background:hsl(calc(var(--i) * 27), 90%, 55%);
  animation:book-confetti-fall calc(2.2s + (var(--i) * .05s)) linear infinite;
  animation-delay:calc(var(--i) * -.08s);
  opacity:.9;
  transform:rotate(calc(var(--i) * 18deg));
}
.book-gift-overlay__card{
  position:relative; z-index:2;
  width:min(440px, 100%);
  padding:28px 22px 22px;
  border-radius:28px;
  text-align:center;
  background:
    radial-gradient(circle at 50% 0%, rgba(57,255,20,.22), transparent 45%),
    linear-gradient(165deg, #fff 0%, #eef6ff 100%);
  border:1.5px solid rgba(30,102,255,.25);
  box-shadow:0 30px 80px rgba(6,26,68,.28);
  animation:book-gift-pop .75s cubic-bezier(.22,1,.36,1);
}
.book-gift-overlay__glow{
  position:absolute; inset:-30%;
  background:radial-gradient(circle at center, rgba(57,255,20,.2), transparent 55%);
  animation:book-gift-glow 2s ease-in-out infinite;
  pointer-events:none;
}
.book-gift-overlay__badge{
  width:72px; height:72px; margin:0 auto 12px;
  display:grid; place-items:center;
  font-size:2.2rem;
  border-radius:50%;
  background:linear-gradient(145deg, #fff, #e8f1ff);
  border:2px solid rgba(30,102,255,.2);
  box-shadow:0 12px 28px rgba(30,102,255,.18);
  animation:book-gift-bounce 1.1s ease-in-out infinite;
}
.book-gift-overlay__eyebrow{
  margin:0 0 8px; font-size:.75rem; font-weight:900; letter-spacing:.16em;
  text-transform:uppercase; color:var(--bf-ok);
}
.book-gift-overlay__title{
  margin:0 0 10px; font-size:clamp(1.25rem, 4vw, 1.7rem); line-height:1.25;
  color:var(--bf-ink); font-weight:900;
}
.book-gift-overlay__body{
  margin:0 0 18px; color:rgba(6,26,68,.7); font-size:.95rem; line-height:1.5;
}
.book-gift-overlay__close{ min-width:180px; }
body.book-gift-open{ overflow:hidden; }
@keyframes book-gift-fade{ from{ opacity:0; } to{ opacity:1; } }
@keyframes book-gift-bounce{
  0%,100%{ transform:translateY(0) scale(1); }
  50%{ transform:translateY(-6px) scale(1.06); }
}
@keyframes book-confetti-fall{
  0%{ transform:translateY(0) rotate(0deg); opacity:1; }
  100%{ transform:translateY(110vh) rotate(540deg); opacity:.2; }
}
@keyframes book-gift-pop{
  0%{ transform:scale(.72); opacity:0; }
  60%{ transform:scale(1.05); opacity:1; }
  100%{ transform:scale(1); }
}
@keyframes book-gift-glow{
  0%,100%{ opacity:.45; transform:scale(.95); }
  50%{ opacity:.9; transform:scale(1.05); }
}

.book-page .form__field{ margin-bottom:12px; }
.book-page .form__field label{ color:rgba(6,26,68,.7); font-weight:700; }
.book-page .form__field input,
.book-page .form__field textarea{
  width:100%; box-sizing:border-box; border-radius:14px;
  border:1.5px solid rgba(30,102,255,.2); background:#fff; color:var(--bf-ink);
  padding:12px 14px; font:inherit;
}
.book-page .form__field input:focus,
.book-page .form__field textarea:focus{
  outline:2px solid rgba(30,102,255,.28); border-color:var(--bf-blue);
}
.book-form .form__actions .btn--blue{ width:100%; padding:14px 18px; font-weight:800; }

@media (max-width:480px){
  .book-shell{ width:calc(100% - 18px); }
  .book-page[data-book-step="milk"] .book-shell,
  .book-page[data-book-step="checkout"] .book-shell,
  .book-page[data-book-step="plans"] .book-shell{ width:calc(100% - 18px); }
  .book-steps__item{ font-size:.64rem; padding:6px 9px; }
  .book-promo__row{ flex-direction:column; }
  .book-promo__row .btn{ width:100%; }
  .book-plans{ grid-template-columns:1fr 1fr; gap:10px; }
  .book-plan__name{ font-size:.92rem; }
  .book-plan__price{ font-size:1.15rem; }
}
@media (prefers-reduced-motion:reduce){
  .book-reel__img,
  .book-reel.is-playing .book-reel__img,
  .book-reel__glow,
  .book-gift,
  .book-gift__burst{ animation:none !important; }
}
