:root { font-family: Arial, Helvetica, sans-serif; color-scheme: dark; }
* { box-sizing: border-box; }
body { margin: 0; background: #000; color: #fff; }
.page { min-height: 100vh; padding: 28px 18px 60px; }
.card { width: min(980px, 100%); margin: 0 auto; }
.eyebrow { margin: 0 0 8px; font-size: 12px; font-weight: 800; letter-spacing: 2px; }
h1 { margin: 0 0 24px; font-size: clamp(30px, 5vw, 48px); font-weight: 500; }
h2 { margin: 0 0 14px; font-size: 16px; }
.intro { margin: 0 0 30px; line-height: 1.45; font-size: 17px; }
form { display: grid; gap: 20px; }
label { display: grid; gap: 10px; font-size: 18px; font-weight: 700; }
.required { color: #ff4d4d; }

input[type="text"],
input[type="email"],
input[type="file"],
textarea,
select {
  width: 100%;
  border: 1px solid #777;
  border-radius: 18px;
  background: #fff;
  color: #111;
  padding: 10px 14px;
  font: inherit;
}

input[type="text"],
input[type="email"],
input[type="file"],
select {
  min-height: 46px;
}

textarea {
  min-height: 120px;
  resize: vertical;
  line-height: 1.4;
}

input[type="file"] { padding: 8px 10px; }
.file-row { display: grid; grid-template-columns: 1fr auto; gap: 10px; align-items: center; }
.help { margin: -10px 0 0; font-size: 12px; line-height: 1.4; }
.help.accent { color: #40c8ff; }
.primary, .secondary {
  border: 0; border-radius: 16px; min-height: 48px; padding: 12px 18px; font-weight: 800; cursor: pointer;
}
.primary { justify-self: center; font-size: 18px; background: #fff; color: #000; min-width: 180px; }
.primary:disabled, .secondary:disabled { cursor: not-allowed; opacity: .55; }
.secondary { background: #262626; color: #fff; border: 1px solid #555; }
.small { min-height: 42px; white-space: nowrap; }
.status { min-height: 22px; font-size: 14px; line-height: 1.45; }
.status.error { color: #ff8b8b; }
.status.good { color: #9be4a8; }

.optional { font-weight: 400; opacity: .75; }

.address-section,
.photo-section,
.buyer-section {
  display: grid;
  gap: 24px;
  padding: 24px;
  border: 1px solid #444;
  border-radius: 18px;
}

.address-section h3,
.buyer-section h3 {
  margin: 0;
  font-size: 15px;
  letter-spacing: .04em;
}

.address-help,
.buyer-help {
  margin: -6px 0 0;
  font-size: 12px;
  line-height: 1.35;
  opacity: .8;
}

.address-grid {
  display: grid;
  grid-template-columns: 1fr 110px 150px;
  gap: 12px;
}

@media (max-width: 620px) {
  .page { padding: 22px 14px 44px; }
  .file-row { grid-template-columns: 1fr; }
  .primary, .small { width: 100%; }

  .address-grid {
    grid-template-columns: 1fr;
  }
}

.gift-intro,
.gift-message {
  font-size: 18px;
  line-height: 1.45;
}

[hidden] { display: none !important; }

.choice-group { border: 0; padding: 0; margin: 0; min-width: 0; }
.choice-group legend { font-size: 20px; font-weight: 700; margin-bottom: 14px; }
.choices { display: grid; grid-template-columns: 1fr auto 1fr; gap: 24px; align-items: center; }
.choice-or { text-align: center; color: #40c8ff; font-size: 20px; font-weight: 800; }
.choice { display: flex; align-items: center; padding: 18px; border: 2px solid #777; border-radius: 16px; cursor: pointer; min-height: 64px; font-size: 17px; }
.choice:has(input:checked) { border-color: #40c8ff; background: #112d3a; }
.choice:focus-within { outline: 2px solid white; outline-offset: 3px; }
input[type="radio"], input[type="checkbox"] { width: 20px; height: 20px; flex-shrink: 0; accent-color: #40c8ff; }
.field-stack { display: grid; gap: 24px; }
.explanation { font-size: 16px; line-height: 1.5; margin: 0; }

.consent {
  display: flex; align-items: flex-start; gap: 14px; padding: 20px;
  font-size: 20px; line-height: 1.5; font-weight: 700;
  background: #112d3a; border: 2px solid #40c8ff; border-radius: 14px;
  cursor: pointer;
}
.consent input { width: 26px; height: 26px; margin: 2px 0 0; }
.consent .optional { opacity: 1; }

.status:empty { display: none; }

.gift-price {
  display: flex; flex-wrap: wrap; justify-content: center; align-items: baseline;
  gap: 8px 12px; margin: 4px 0; color: #40c8ff; text-align: center;
}
.gift-price strong { font-size: 40px; line-height: 1.2; }
.gift-price span { font-size: 20px; }

.field-label { line-height: 1.4; }

.extra-certificates {
  display: grid;
  gap: 14px;
  padding: 22px;
  border: 2px solid #40c8ff;
  border-radius: 18px;
  background: #112d3a;
}
.extra-certificates h3 {
  margin: 0;
  font-size: 18px;
  letter-spacing: .04em;
}
.extra-help,
.extra-summary {
  margin: 0;
  line-height: 1.45;
}
.extra-help { font-size: 15px; }
.extra-summary { font-size: 14px; color: #d7f4ff; }
.extra-certificates select:disabled {
  opacity: .6;
  cursor: not-allowed;
}

@media (max-width: 620px) {
  .buyer-section { padding: 18px; }
  .consent { padding: 16px; }
  .extra-certificates { padding: 18px; }
  .choices { grid-template-columns: 1fr; }
}

/* Prominent gift-delivery instructions above checkout. */
#deliveryHelp {
  margin: 0;
  padding: 24px;
  text-align: center;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.5;
  color: #fff;
  background: #112d3a;
  border-left: 5px solid #40c8ff;
  border-radius: 8px;
  overflow-wrap: anywhere;
}
