/* Gerrards Notices - front-end styles.
   Uses theme design tokens with fallbacks so the plugin stays self-contained. */

.gbn-notice {
  font-family: var(--font-primary, 'Montserrat', sans-serif);
  box-sizing: border-box;
}

.gbn-notice *,
.gbn-notice *::before,
.gbn-notice *::after {
  box-sizing: border-box;
}

.gbn-notice a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.gbn-notice a:hover {
  opacity: 0.85;
}

.gbn-notice p {
  margin: 0;
}

/* Type palettes */
.gbn--info {
  --gbn-bg: var(--gb-navy, #16284f);
  --gbn-fg: #ffffff;
  --gbn-accent: var(--gb-gold, #c9a962);
  --gbn-tint: #eef1f6;
  --gbn-ink: var(--gb-navy, #16284f);
}

.gbn--promo {
  --gbn-bg: var(--gb-gold, #c9a962);
  --gbn-fg: var(--gb-navy, #16284f);
  --gbn-accent: var(--gb-navy, #16284f);
  --gbn-tint: #faf6ec;
  --gbn-ink: #87691f;
}

.gbn--warning {
  --gbn-bg: #7a2222;
  --gbn-fg: #ffffff;
  --gbn-accent: #e9b949;
  --gbn-tint: #f9eded;
  --gbn-ink: #7a2222;
}

.gbn--success {
  --gbn-bg: #1f5c40;
  --gbn-fg: #ffffff;
  --gbn-accent: #a8d8bd;
  --gbn-tint: #ecf4ef;
  --gbn-ink: #1f5c40;
}

/* ===== Top bar ===== */
.gbn-bar {
  width: 100%;
  background: var(--gbn-bg);
  color: var(--gbn-fg);
}

.gbn-bar .gbn-inner {
  position: relative;
  max-width: var(--content-max-width, 1600px);
  margin: 0 auto;
  min-height: 42px;
  padding: 0.55rem 3.25rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
}

.gbn-bar .gbn-icon {
  display: inline-flex;
  flex-shrink: 0;
  color: var(--gbn-accent);
}

.gbn-bar .gbn-message {
  font-size: 0.875rem;
  font-weight: 500;
  letter-spacing: 0.01em;
  line-height: 1.45;
  text-align: center;
}

/* Top bar is a one-liner: heading and paragraphs flow inline */
.gbn-bar .gbn-heading {
  display: inline;
  font-weight: 700;
  margin-right: 0.45em;
}

.gbn-bar .gbn-message p {
  display: inline;
  margin: 0 0.35em 0 0;
}

.gbn-bar .gbn-dismiss {
  position: absolute;
  right: 1rem;
  top: 50%;
  transform: translateY(-50%);
}

/* ===== Inline notices: full-bleed bands, flush to the header above ===== */
.gbn-inline-area {
  display: flex;
  flex-direction: column;
  margin: 0;
}

.gbn-inline {
  width: 100%;
  background: var(--gbn-tint);
  border-bottom: 1px solid rgba(0, 0, 0, 0.07);
  color: var(--gb-text, #191919);
}

.gbn-inline .gbn-inner {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  max-width: var(--content-max-width, 1600px);
  margin: 0 auto;
  width: 100%;
  padding: 1.05rem 2rem;
}

.gbn-inline .gbn-icon {
  display: inline-flex;
  flex-shrink: 0;
  margin-top: 0.1rem;
  color: var(--gbn-ink);
}

.gbn-inline .gbn-message {
  flex: 1;
  font-size: 0.9375rem;
  line-height: 1.55;
}

.gbn-inline .gbn-heading {
  font-weight: 700;
  font-size: 1rem;
  margin-bottom: 0.35rem;
  color: var(--gbn-ink);
}

.gbn-inline .gbn-message p + p {
  margin-top: 0.55em;
}

.gbn-inline .gbn-dismiss {
  margin-left: auto;
  color: var(--gbn-ink);
}

/* ===== Dismiss button ===== */
.gbn-dismiss {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: 0;
  padding: 0.3rem;
  margin: 0;
  cursor: pointer;
  color: inherit;
  opacity: 0.65;
  line-height: 0;
  transition: opacity 0.15s ease;
}

.gbn-dismiss:hover,
.gbn-dismiss:focus {
  opacity: 1;
}

/* Dismissal collapse animation (max-height set inline by JS) */
.gbn-hiding {
  overflow: hidden;
  transition: max-height 0.25s ease, opacity 0.2s ease, margin 0.25s ease;
}

/* ===== Mobile ===== */
@media (max-width: 768px) {
  .gbn-bar .gbn-inner {
    padding: 0.5rem 2.75rem 0.5rem 1rem;
    justify-content: flex-start;
  }

  .gbn-bar .gbn-message {
    font-size: 0.8125rem;
    text-align: left;
  }

  .gbn-bar .gbn-dismiss {
    right: 0.5rem;
  }

  .gbn-inline .gbn-inner {
    padding: 0.85rem 1rem;
  }

  .gbn-inline .gbn-message {
    font-size: 0.875rem;
  }
}
