:root {
  --bd-red: #e31b23;
  --bd-red-dark: #c4161d;
  --bd-yellow: #f5c400;
  --bd-ink: #3a2415;
  --bd-white: #ffffff;
}

* { box-sizing: border-box; }

html { height: 100%; }

body {
  margin: 0;
  min-height: 100%;
  color: var(--bd-ink);
  font-family: Nunito, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

body:not(.quiz-on):not(.sco-open) {
  overflow: hidden;
  height: 100dvh;
  max-height: 100dvh;
  background: var(--bd-yellow);
}

#landing:not([hidden]) {
  display: flex;
  flex-direction: column;
  height: 100dvh;
  max-height: 100dvh;
  overflow: hidden;
  background: var(--bd-yellow);
}

#landing[hidden] { display: none !important; }
#quiz-app[hidden] { display: none !important; }

.bd-nav {
  flex: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: #fff;
  padding: 8px 16px;
  border-bottom: 1px solid rgba(227, 27, 35, 0.08);
}

.bd-logo {
  font-family: Pacifico, cursive;
  color: var(--bd-red);
  font-size: 22px;
  line-height: 1;
  text-decoration: none;
}

.bd-nav-actions {
  display: flex;
  align-items: center;
  gap: 6px;
}

.bd-nav-natal {
  background: var(--bd-yellow);
  color: var(--bd-ink);
  font-weight: 800;
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  border-radius: 999px;
  padding: 5px 10px;
  text-decoration: none;
}

.bd-hero {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 12px 18px calc(14px + env(safe-area-inset-bottom, 0px));
}

.bd-kicker {
  flex: none;
  display: inline-block;
  margin: 0 0 8px;
  background: var(--bd-red);
  color: #fff;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  border-radius: 999px;
  padding: 5px 11px;
}

.bd-hero h1 {
  flex: none;
  margin: 0;
  font-size: clamp(1.22rem, 5.4vw, 1.62rem);
  line-height: 1.2;
  font-weight: 900;
}

.bd-off {
  color: var(--bd-red);
  white-space: nowrap;
}

.bd-hero-photo {
  flex: 1 1 auto;
  min-height: 0;
  width: min(100%, 420px);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 8px 0;
}

.bd-hero-photo img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 100%;
  object-fit: contain;
  background: #fff;
  border-radius: 20px;
  filter: drop-shadow(0 12px 22px rgba(58, 36, 21, 0.16));
}

.bd-hero-bottom {
  flex: none;
  width: min(420px, 100%);
  margin-top: auto;
}

.bd-hero p {
  margin: 0 0 12px;
  font-size: clamp(0.88rem, 3.6vw, 1rem);
  line-height: 1.4;
  font-weight: 600;
  color: var(--bd-ink);
}

.bd-cta-wrap {
  width: 100%;
}

.bd-cta {
  appearance: none;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  width: 100%;
  min-height: 54px;
  padding: 10px 12px 12px 20px;
  border: 0;
  border-radius: 16px;
  background: linear-gradient(180deg, #ff4047 0%, #e31b23 48%, #c4161d 100%);
  color: #fff;
  font: inherit;
  font-weight: 800;
  font-size: 1.05rem;
  letter-spacing: 0.01em;
  line-height: 1.15;
  cursor: pointer;
  text-shadow: 0 1px 0 rgba(120, 8, 12, 0.22);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.42) inset,
    0 -3px 0 rgba(140, 10, 16, 0.36) inset,
    0 1px 0 rgba(255, 255, 255, 0.55),
    0 12px 28px rgba(180, 18, 24, 0.36);
}

.bd-cta::before {
  content: "";
  position: absolute;
  inset: 0 0 48% 0;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.24), rgba(255, 255, 255, 0));
  pointer-events: none;
  z-index: 0;
}

.bd-cta-text,
.bd-cta-arrow {
  position: relative;
  z-index: 1;
}

.bd-cta-text {
  flex: 1;
  text-align: center;
}

.bd-cta-arrow {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  flex: none;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.16);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.28) inset;
}

.bd-cta:hover {
  filter: brightness(1.05);
}

.bd-cta:active {
  transform: translateY(1px);
  filter: brightness(0.98);
}

@media (min-height: 760px) {
  .bd-hero { padding-top: 16px; }
  .bd-hero h1 { font-size: clamp(1.35rem, 5.2vw, 1.75rem); }
}

@media (max-height: 640px) {
  .bd-nav { padding: 6px 14px; }
  .bd-logo { font-size: 20px; }
  .bd-hero { padding: 8px 16px 10px; }
  .bd-kicker { margin-bottom: 6px; padding: 4px 9px; font-size: 10px; }
  .bd-hero h1 { font-size: 1.08rem; }
  .bd-hero p { font-size: 0.84rem; margin-bottom: 8px; }
  .bd-hero-photo { margin: 4px 0; }
  .bd-cta { min-height: 48px; }
}
