/* Dukat harvest signup, ported from sections/dukat-harvest-signup.liquid. */
.dk-harvest {
  padding-block: calc(var(--dk-pad-top) * 0.65) calc(var(--dk-pad-bottom) * 0.65);
  position: relative;
  overflow: hidden;
  background: var(--dk-harvest-bg);
  color: var(--dk-harvest-fg);
}
.dk-harvest__decoration {
  position: absolute;
  right: -18%;
  bottom: -6%;
  width: min(calc(80vw * var(--dk-z, 1)), 23.75rem);
  height: auto;
  opacity: 0.14;
  transform: rotate(8deg);
  pointer-events: none;
}
.dk-harvest__grid {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 2.25rem;
  align-items: center;
}
.dk-harvest__intro { position: relative; padding-top: 5.25rem; }
.dk-harvest__title { line-height: 0.92; max-width: 8.8em; }
.dk-harvest__text {
  margin-top: 1.25rem;
  max-width: 30em;
  font-family: var(--dk-font-text);
  font-size: clamp(1.05rem, calc(1.35vw * var(--dk-z, 1)), 1.1875rem);
  line-height: 1.5;
}
.dk-harvest__text p { margin: 0; }
.dk-harvest__sticker {
  position: absolute;
  top: -0.75rem;
  right: 0;
}
.dk-harvest__sticker .dk-sticker__small { font-size: calc(var(--dk-sticker-size) * 0.09); }
.dk-harvest__sticker .dk-sticker__big { font-size: calc(var(--dk-sticker-size) * 0.145); margin-top: 0.15em; white-space: nowrap; }
.dk-harvest__form {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  padding: clamp(1.5rem, calc(2.3vw * var(--dk-z, 1)), 2rem);
  border-radius: 1.75rem;
  background: var(--dk-harvest-card);
  color: var(--dk-harvest-card-fg);
}
.dk-harvest__label {
  font-family: var(--dk-font-display);
  font-size: 1.125rem;
  font-weight: 800;
}
.dk-harvest__input {
  min-height: 3.875rem;
  width: 100%;
  box-sizing: border-box;
  padding: 0 1.5rem;
  border: 0;
  border-radius: 999px;
  background: var(--dk-cream);
  color: var(--dk-ink);
  font-family: var(--dk-font-text);
  font-size: 1.0625rem;
}
.dk-harvest__input::placeholder { color: var(--dk-muted); opacity: 1; }
.dk-harvest__input:focus-visible { outline: 3px solid var(--dk-terra); outline-offset: 3px; }
.dk-harvest__input[aria-invalid='true'] { box-shadow: inset 0 0 0 3px var(--dk-terra); }
.dk-harvest__submit {
  min-height: 3.875rem;
  font-size: 1.25rem;
  margin-top: 0.25rem;
  --dk-btn-shadow: var(--dk-deep);
}
.dk-harvest__message {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  margin: 0;
  font-weight: 700;
  line-height: 1.4;
}
.dk-harvest__message svg { flex-shrink: 0; margin-top: 0.05em; }
.dk-harvest__message--error { color: var(--dk-terra); }
.dk-harvest__message--success {
  min-height: 3.875rem;
  align-items: center;
  padding: 0.75rem 1.25rem;
  border-radius: 1.25rem;
  background: var(--dk-lime);
  color: var(--dk-ink);
  font-family: var(--dk-font-display);
  font-size: 1.125rem;
}
.dk-harvest__note {
  margin: 0.125rem 0 0;
  font-size: 0.8125rem;
  color: color-mix(in srgb, var(--dk-harvest-card-fg) 78%, var(--dk-harvest-card));
}

@media screen and (min-width: 990px) {
  .dk-harvest { padding-block: var(--dk-pad-top) var(--dk-pad-bottom); }
  .dk-harvest__grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 29.375rem);
    gap: 4rem;
  }
  .dk-harvest__intro { padding-top: 0; max-width: 45rem; }
  .dk-harvest__sticker { top: -2.5rem; right: auto; left: min(37.5rem, 83%); }
  .dk-harvest__decoration { right: 32%; top: 34%; bottom: auto; }
}

/* WooCommerce pages: woocommerce-blocktheme.css adds `.woocommerce-page label { margin-bottom: .7em }`.
   Restated one class stronger so the label keeps the Shopify spacing everywhere. */
.dk-harvest .dk-harvest__label { margin-bottom: 0; }

/* In-place signup (assets/dukat-signup.js) toggles the label, field, button and messages with `hidden`,
   and the messages set their own display, so hidden needs its own rule. */
.dk-harvest__form [hidden] { display: none; }

/* Signup popup (includes/signup-dialog.php): this block rendered inside a modal dialog, as a rounded card. */
.dk-signup-dialog {
  width: min(64rem, calc(100% - 2rem));
  max-width: none;
  max-height: calc(100dvh - 2rem);
  padding: 0;
  border: 2px solid var(--dk-ink);
  border-radius: 2rem;
  background: transparent;
  box-shadow: 0 0.5rem 0 var(--dk-ink);
  overflow: auto;
  overscroll-behavior: contain;
}
.dk-signup-dialog::backdrop {
  background: color-mix(in srgb, var(--dk-ink) 45%, transparent);
}
.dk-signup-dialog .dk-harvest__intro { padding-top: 0; padding-inline-end: 3rem; }
.dk-signup-dialog__close {
  position: absolute;
  top: 1rem;
  right: 1rem;
  z-index: 2;
  display: grid;
  place-items: center;
  width: 3rem;
  height: 3rem;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: var(--dk-ink);
  color: var(--dk-cream);
  cursor: pointer;
}
.dk-signup-dialog__close:focus-visible { outline: 3px solid var(--dk-terra); outline-offset: 3px; }
@media (prefers-reduced-motion: no-preference) {
  .dk-signup-dialog[open] { animation: dk-signup-dialog-in 0.22s ease; }
  .dk-signup-dialog__close { transition: transform 0.15s ease; }
  .dk-signup-dialog__close:hover { transform: rotate(90deg); }
}
@keyframes dk-signup-dialog-in {
  from { transform: translateY(0.75rem); opacity: 0; }
  to { transform: none; opacity: 1; }
}
