/* Hyper Endurance Fitness | cookie consent styles

   Accept and Decline are deliberately identical in size, weight and
   colour. Making one louder than the other is what turns consent into
   something that was not freely given. */

.hef-cc{
  position:fixed;
  left:0; right:0;
  bottom:0;
  z-index:2147483100;              /* above the chat and the language pill */
  padding:16px max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));
  background:rgba(12,13,15,0.97);
  border-top:1px solid rgba(255,255,255,0.10);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
  box-shadow:0 -18px 48px rgba(0,0,0,0.5);
  font-family:'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif;
  transform:translateY(102%);
  transition:transform 320ms cubic-bezier(0.4,0,0.2,1);
}
.hef-cc.is-in{ transform:translateY(0); }

/* Never over the opening film. */
html.hef-intro-open .hef-cc{ display:none; }

.hef-cc-inner{
  max-width:1180px;
  margin:0 auto;
  display:flex;
  align-items:center;
  gap:28px;
}

.hef-cc-title{
  margin:0 0 4px;
  font-size:11px;
  font-weight:600;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:#c9a35a;
}
.hef-cc-body{
  margin:0;
  font-size:13px;
  line-height:1.55;
  color:#b9bdbf;
  max-width:74ch;
}
.hef-cc-body a{ color:#e8dcc0; text-decoration:underline; text-underline-offset:2px; }
.hef-cc-body a:hover{ color:#fff; }

.hef-cc-actions{
  display:flex;
  gap:10px;
  flex:none;
  margin-left:auto;
}

/* Same size, same weight, same prominence. */
.hef-cc-btn{
  min-height:42px;
  min-width:124px;
  padding:0 20px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,0.22);
  background:rgba(255,255,255,0.04);
  color:#e9ebec;
  font:inherit;
  font-size:12.5px;
  font-weight:600;
  letter-spacing:0.08em;
  cursor:pointer;
  transition:border-color 180ms ease, background 180ms ease, color 180ms ease;
}
.hef-cc-btn:hover,
.hef-cc-btn:focus-visible{
  border-color:rgba(201,163,90,0.75);
  background:rgba(201,163,90,0.10);
  color:#fff;
}
.hef-cc-btn:focus-visible{ outline:2px solid #c9a35a; outline-offset:2px; }

/* Lift the floating controls clear while the banner is up. Without this
   the banner sits on top of the chat launcher, and on a phone the button
   simply cannot be pressed. */
html.hef-cc-open .hef-lang{ bottom:calc(var(--hef-cc-h, 96px) + 14px); }

/* The chat widget positions itself inside its own shadow root, so moving
   its host does not move the launcher and the banner ends up sitting on
   top of a button nobody can press. Rather than reaching into the widget's
   code, it is hidden for the few seconds the banner is asking. It returns
   the moment a choice is made, and no chat code is touched. */
html.hef-cc-open #hyper-intelligence{ display:none; }

@media (max-width:860px){
  .hef-cc-inner{ flex-direction:column; align-items:stretch; gap:14px; }
  .hef-cc-actions{ margin-left:0; }
  .hef-cc-btn{ flex:1 1 0; min-width:0; }
  .hef-cc-body{ font-size:12.5px; }
  html.hef-cc-open .hef-lang{ bottom:calc(var(--hef-cc-h, 168px) + 12px); }
}

@media (prefers-reduced-motion: reduce){
  .hef-cc{ transition:none; }
}
