.funnel-status {
  position: fixed;
  z-index: 1000;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  width: min(90vw, 600px);
  padding: 14px 20px;
  border: 1px solid #b6c5da;
  border-radius: 8px;
  background: #fff;
  color: #23344e;
  font: 15px/1.7 sans-serif;
  box-shadow: 0 4px 20px #0002;
  text-align: center;
}
.funnel-status.is-error {
  border-color: #ac4050;
  color: #8b2331;
}
.funnel-status[hidden],
.funnel-nav[hidden] {
  display: none;
}
.funnel-nav {
  position: absolute;
  z-index: 100;
  top: 80px;
  right: 20px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 24px;
  background: white;
  box-shadow: 0 4px 20px #0002;
  border-radius: 8px;
  font: 16px/1.5 sans-serif;
}
.funnel-nav a {
  color: #23344e;
}
.funnel-message {
  max-width: 600px;
  margin: 12vh auto;
  padding: 32px;
  background: #fffdf9;
  color: #25364c;
  font: 16px/1.9 sans-serif;
}
.funnel-message img {
  max-width: 180px;
}
.funnel-message h1 {
  font-size: 26px;
  margin: 32px 0 16px;
}
.funnel-message a,
.funnel-status button {
  display: inline-block;
  padding: 12px 24px;
  margin-top: 16px;
  background: #25364c;
  color: white;
  text-decoration: none;
  border-radius: 4px;
}
.funnel-status button {
  border: 0;
  font: inherit;
  cursor: pointer;
}
[aria-disabled="true"] {
  opacity: 0.65;
  pointer-events: none;
}
input:focus-visible + span,
button:focus-visible,
a:focus-visible {
  outline: 3px solid #b57928;
  outline-offset: 4px;
}
[data-seminar-cta][hidden] { display: none !important; }
.quiz[hidden] { display: none !important; }
.consent-notice {
  width: min(calc(100% - 32px), 760px);
  margin: 0 auto 28px;
  padding: 24px clamp(18px, 4vw, 36px);
  border: 1px solid #c9b991;
  border-top: 4px solid #a98547;
  border-radius: 4px;
  background: #fffdf8;
  color: #25364c;
  font: 15px/1.75 "Noto Sans JP", sans-serif;
}
.consent-notice[hidden] { display: none !important; }
.consent-notice .funnel-status {
  position: static;
  transform: none;
  box-sizing: border-box;
  width: 100%;
  margin-top: 16px;
}
.consent-notice h2 { margin: 0 0 12px; font: 600 20px/1.5 "Noto Serif JP", serif; }
.consent-notice p { margin: 8px 0; }
.consent-notice a { color: #345b86; text-underline-offset: 3px; }
.consent-check { display: flex; align-items: flex-start; gap: 10px; margin-top: 18px; font-weight: 600; cursor: pointer; }
.consent-check input { flex: 0 0 auto; width: 20px; height: 20px; margin: 2px 0 0; accent-color: #a98547; }
.consent-notice button { display: block; width: min(100%, 360px); min-height: 48px; margin: 16px auto 0; border: 0; border-radius: 4px; background: #25364c; color: #fff; font: 600 16px/1.4 "Noto Sans JP", sans-serif; cursor: pointer; }
.consent-notice button:disabled { background: #8d9299; cursor: not-allowed; }
.consent-notice button:focus-visible { outline: 3px solid #b57928; outline-offset: 4px; }
.consent-recovery[hidden] { display: none !important; }
.consent-recovery { margin-top: 18px; padding-top: 14px; border-top: 1px solid #d8cdb7; }
