:root {
  --ej-yellow: #ffd634;
  --ej-blue: #0096bd;
  --ej-charcoal: #363d41;
  --ej-ink: #25292c;
  --ej-light: #f3f3f3;
  --ej-cream: #ffeda4;
  --border: #aeb3b6;
}

* { box-sizing: border-box; }
body {
  margin: 0;
  color: var(--ej-ink);
  background: #fff;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 16px;
  line-height: 1.42;
}

.container-xl { max-width: 1180px; }
.site-hero { background: #fff; margin-bottom: 20px}
.hero-shell { background: #f2f2f2; min-height: 330px; }
.hero-copy { position: relative; z-index: 2; }
.brand-badge {

}
.brand-badge span { font-weight: 700; }
.brand-badge sup { font-family: Arial, sans-serif; font-size: .5em; }
.hero-copy h1 { font-size: clamp(2rem, 3vw, 3rem); font-weight: 800; line-height: 1.08; margin-bottom: 1.5rem; }
.hero-copy p { max-width: 510px; font-size: 1.04rem; }
.hero-art-wrap { min-height: 330px; position: relative; }
.hero-art { width: 108%; max-width: none; display: block; margin-left: -5%; }

.page-body { background: linear-gradient(90deg, #fff 0 71%, #f5f5f5 71% 100%); }
.form-panel, .gift-section { background: #fff; }
.form-panel h2, .gift-section h2 { font-weight: 800; font-size: clamp(1.55rem, 2.2vw, 2.1rem); }
.form-panel h2 span, .gift-section h2 span { color: var(--ej-blue); }
.form-label, legend.form-label { font-size: .96rem; font-weight: 400; margin-bottom: .55rem; }
.form-control, .form-select { border: 1px solid var(--border); border-radius: 7px; min-height: 48px; padding: .75rem .9rem; }
textarea.form-control { resize: vertical; min-height: 92px; }
.form-control:focus, .form-select:focus { border-color: var(--ej-blue); box-shadow: 0 0 0 .2rem rgba(0,150,189,.15); }
.form-check-input:checked { background-color: var(--ej-blue); border-color: var(--ej-blue); }
.form-check { margin-bottom: .45rem; }
.consent-box { border-top: 1px solid #eee; padding-top: .25rem; }

.sidebar { padding-top: 7rem; }
.info-card { padding: 2rem; }
.info-card h3 { font-size: 1.25rem; font-weight: 800; margin-bottom: 1.4rem; }
.dark-card { background: var(--ej-charcoal); color: #fff; }
.dark-card h3 { color: var(--ej-yellow); }
.quote-card { background: var(--ej-cream); }
.quote-card blockquote { position: relative; margin: 0 0 .45rem 2rem; font-size: 1.02rem; }
.quote-card blockquote::before { content: '“'; position: absolute; left: -2rem; top: -.45rem; font-size: 3.5rem; line-height: 1; font-weight: 800; color: var(--ej-charcoal); }
.attribution { font-size: .82rem; margin-left: 2rem; margin-bottom: 1.8rem; }

.gift-section { background: #f4f4f4; }
.gift-radio { position: absolute; opacity: 0; pointer-events: none; }
.gift-card {
  height: 100%;
  min-height: 335px;
  background: #fff;
  border: 3px solid transparent;
  border-radius: 14px;
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  cursor: pointer;
  transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.gift-card:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(0,0,0,.08); }
.gift-radio:checked + .gift-card { border-color: var(--ej-blue); }
.gift-title { display: block; text-align: center; font-size: 1.05rem; padding-bottom: 1rem; border-bottom: 1px solid #aaa; }
.gift-image-wrap { flex: 1; display: flex; align-items: flex-end; justify-content: center; overflow: hidden; }
.gift-image-wrap img { width: 100%; max-width: 320px; max-height: 230px; object-fit: contain; object-position: center bottom; }
.gift-image-wrap.bottle img { width: 36%; min-width: 90px; }
.option-label { font-size: .9rem; margin-bottom: .5rem; }
.divider-column { border-left: 1px solid #aaa; padding-left: 2rem; }
.size-select { min-width: 92px; }
.size-link { display: inline-block; margin-top: .55rem; color: #1c7f9b; font-size: .84rem; }
.submit-btn { background: var(--ej-yellow); color: #303437; border: 0; min-width: 280px; padding: .8rem 2rem; border-radius: 3px; }
.submit-btn:hover, .submit-btn:focus { background: #f2c500; color: #222; }

.site-footer { background: var(--ej-charcoal); color: #fff; font-size: .75rem; }
.site-footer p { max-width: 900px; }

@media (max-width: 991.98px) {
  .hero-shell { min-height: auto; }
  .hero-art-wrap { min-height: auto; display: flex; justify-content: center; }
  .hero-art { width: 100%; margin: 0; }
  .page-body { background: #fff; }
  .sidebar { padding-top: 0; }
  .gift-section { margin-inline: -12px; }
}

@media (max-width: 575.98px) {
  body { font-size: 15px; }
  .hero-copy { padding: 1.5rem !important; }
  .brand-badge { font-size: 1.15rem; padding: 8px 13px; }
  .hero-copy h1 { font-size: 1.8rem; }
  .hero-art { width: 114%; margin-left: -7%; }
  .info-card { padding: 1.45rem; }
  .gift-section { padding: 1.5rem !important; }
  .gift-card { min-height: 285px; }
  .divider-column { border-left: 0; padding-left: calc(var(--bs-gutter-x) * .5); }
  .submit-btn { width: 100%; min-width: 0; }
}
