/* Call Box — contact (Cautionfield Market / Ovasta Seeds)
   Industrial CALL BOX mast · bezelled slot fields · bolted ID plates ·
   jack-port channels · single SEND CALL boom.
   Replaces Site Office. Avoids Mailslot / Intercom / Propagation / Pneumatic /
   Lantern / Pinboard / Bubble / Inkwell / Postcard / Signal Hut / Ping / Harborline. */

.page-a99-callbox {
  --cx-ease: cubic-bezier(0.22, 1, 0.36, 1);
  background: linear-gradient(180deg, #cfd8e0 0%, var(--cf-field) 40%, #dce4ea 100%);
}

/* —— Asphalt mast + CALL BOX housing —— */
.page-a99-callbox .cx-mast {
  position: relative;
  background:
    linear-gradient(180deg, #1a1f24 0%, var(--cf-asphalt) 55%, #0c0f12 100%);
  color: #fff;
  overflow: hidden;
  padding-bottom: 32px;
}
.page-a99-callbox .cx-mast-hazard {
  height: 10px;
  background: repeating-linear-gradient(
    -45deg,
    var(--cf-signal) 0 12px,
    var(--cf-asphalt) 12px 24px
  );
  border-bottom: 3px solid #000;
}
.page-a99-callbox .cx-mast-inner {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: clamp(18px, 4vw, 32px);
  align-items: center;
  padding: clamp(28px, 5vw, 48px) 0 16px;
}
.page-a99-callbox .cx-housing {
  position: relative;
  width: clamp(96px, 16vw, 120px);
  height: clamp(112px, 18vw, 140px);
  display: grid;
  place-items: center;
  background: linear-gradient(180deg, var(--cf-signal) 0%, #e6d000 100%);
  color: var(--cf-signal-ink);
  border: 4px solid #000;
  box-shadow: 5px 5px 0 #000;
  opacity: 0;
  transform: translateY(12px);
  animation: cxHouseIn 520ms var(--cx-ease) 60ms forwards;
}
.page-a99-callbox .cx-housing strong {
  font-family: var(--cf-font-display);
  font-size: clamp(0.95rem, 2vw, 1.15rem);
  font-weight: 400;
  letter-spacing: 0.08em;
  line-height: 1.15;
  text-align: center;
}
.page-a99-callbox .cx-housing-light {
  position: absolute;
  top: 10px;
  right: 10px;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: #6a7078;
  border: 2px solid #000;
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.4);
}
.page-a99-callbox .cx-housing-light.is-on {
  background: var(--cf-ok);
  box-shadow: 0 0 10px rgba(0, 122, 77, 0.8);
}
.page-a99-callbox .cx-kicker {
  margin: 0 0 8px;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--cf-tape);
}
.page-a99-callbox .cx-mast h1 {
  margin: 0 0 10px;
  font-family: var(--cf-font-display);
  font-size: clamp(1.7rem, 4vw, 2.5rem);
  font-weight: 400;
  line-height: 1.1;
  max-width: 14ch;
  color: #fff;
}
.page-a99-callbox .cx-lede {
  margin: 0;
  max-width: 42ch;
  color: var(--cf-soft-on-dark);
  font-size: 1.02rem;
  font-weight: 500;
}
.page-a99-callbox .cx-mast-dash {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 10px;
  height: 5px;
  background: repeating-linear-gradient(
    90deg,
    var(--cf-signal) 0 22px,
    transparent 22px 40px
  );
  opacity: 0.85;
}

.page-a99-callbox .cx-stage {
  padding: 28px 0 clamp(48px, 7vw, 80px);
  display: flex;
  flex-direction: column;
  gap: 22px;
}

/* —— Open call-box panel (form) —— */
.page-a99-callbox .cx-box {
  background:
    linear-gradient(180deg, #2e363e 0%, #1c2228 100%);
  border: 4px solid #000;
  box-shadow: 6px 6px 0 var(--cf-signal);
  overflow: hidden;
  opacity: 0;
  transform: translateY(12px);
  animation: cxBoxIn 520ms var(--cx-ease) 140ms forwards;
}
.page-a99-callbox .cx-box-head {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 18px 18px 14px;
  background: rgba(0, 0, 0, 0.25);
  border-bottom: 2px dashed rgba(255, 230, 0, 0.35);
  color: #fff;
}
.page-a99-callbox .cx-hinge {
  flex: 0 0 18px;
  align-self: stretch;
  min-height: 48px;
  background:
    repeating-linear-gradient(
      180deg,
      #8a9098 0 8px,
      #3a4048 8px 16px
    );
  border: 2px solid #000;
  border-radius: 3px;
}
.page-a99-callbox .cx-box-kicker {
  margin: 0 0 4px;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--cf-tape);
}
.page-a99-callbox .cx-box-head h2 {
  margin: 0 0 6px;
  font-family: var(--cf-font-display);
  font-size: clamp(1.2rem, 2.8vw, 1.55rem);
  font-weight: 400;
  line-height: 1.15;
  color: #fff;
}
.page-a99-callbox .cx-box-head p {
  margin: 0;
  color: var(--cf-soft-on-dark);
  font-size: 0.95rem;
  max-width: 48ch;
}
.page-a99-callbox .cx-status {
  margin-left: auto;
  flex: 0 0 auto;
  padding: 6px 10px;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  background: rgba(255, 255, 255, 0.08);
  border: 2px solid rgba(255, 255, 255, 0.25);
  color: var(--cf-soft-on-dark);
}
.page-a99-callbox .cx-status.is-live {
  background: var(--cf-ok);
  border-color: #000;
  color: #fff;
}

.page-a99-callbox .cx-notice {
  margin: 16px 18px 0;
  padding: 12px 14px;
  border: 2px solid #000;
}
.page-a99-callbox .cx-notice strong {
  display: block;
  margin-bottom: 4px;
  font-weight: 800;
}
.page-a99-callbox .cx-notice p { margin: 0; font-weight: 500; }
.page-a99-callbox .cx-notice.is-ok {
  background: var(--cf-field-cool);
  color: var(--cf-ink);
  border-left: 5px solid var(--cf-ok);
}
.page-a99-callbox .cx-notice.is-err {
  background: #ffe8ec;
  color: var(--cf-ink);
  border-left: 5px solid var(--cf-err);
}

.page-a99-callbox .cx-form {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  padding: 18px;
}
.page-a99-callbox .cx-slot {
  display: grid;
  gap: 6px;
  padding: 12px;
  background: #12151a;
  border: 3px solid #000;
  box-shadow: inset 0 0 0 2px rgba(255, 230, 0, 0.15);
  transition: box-shadow 160ms ease, border-color 160ms ease;
}
.page-a99-callbox .cx-slot--wide { grid-column: 1 / -1; }
.page-a99-callbox .cx-slot:focus-within {
  box-shadow: inset 0 0 0 2px var(--cf-signal);
  border-color: var(--cf-cone);
}
.page-a99-callbox .cx-slot.is-lit {
  box-shadow: inset 0 0 0 2px var(--cf-tape);
}
.page-a99-callbox .cx-slot-tag {
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--cf-signal);
}
.page-a99-callbox .cx-slot input,
.page-a99-callbox .cx-slot textarea {
  width: 100%;
  border: 0;
  background: transparent;
  color: #fff;
  font: inherit;
  font-size: 1rem;
  font-weight: 600;
  padding: 4px 0;
  outline: none;
  resize: vertical;
}
.page-a99-callbox .cx-slot input::placeholder,
.page-a99-callbox .cx-slot textarea::placeholder {
  color: var(--cf-placeholder);
  opacity: 1;
}
.page-a99-callbox .cx-slot textarea { min-height: 110px; }

.page-a99-callbox .cx-boom {
  grid-column: 1 / -1;
  position: relative;
  display: flex;
  align-items: center;
  gap: 14px;
  min-height: 58px;
  margin-top: 4px;
  padding: 12px 16px;
  border: 3px solid #000;
  background: var(--cf-cone);
  color: var(--cf-on-cone);
  text-decoration: none;
  cursor: pointer;
  overflow: hidden;
  isolation: isolate;
  box-shadow: 4px 4px 0 var(--cf-signal);
  font: inherit;
  text-align: left;
  transition: transform 180ms var(--cx-ease), box-shadow 180ms ease;
}
.page-a99-callbox .cx-boom:hover,
.page-a99-callbox .cx-boom:focus-visible {
  transform: translate(-2px, -2px);
  box-shadow: 6px 6px 0 var(--cf-signal);
  outline: none;
}
.page-a99-callbox .cx-boom-arm {
  position: absolute;
  inset: 0;
  background: linear-gradient(105deg, transparent 42%, rgba(255, 230, 0, 0.5) 50%, transparent 58%);
  transform: translateX(-120%);
  transition: transform 420ms ease;
  z-index: 0;
}
.page-a99-callbox .cx-boom:hover .cx-boom-arm { transform: translateX(120%); }
.page-a99-callbox .cx-boom-copy {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 2px;
  flex: 1;
}
.page-a99-callbox .cx-boom-copy em {
  font-style: normal;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  opacity: 0.85;
}
.page-a99-callbox .cx-boom-copy strong {
  font-family: var(--cf-font-display);
  font-size: 1.2rem;
  font-weight: 400;
  line-height: 1.1;
}
.page-a99-callbox .cx-boom-chev {
  position: relative;
  z-index: 1;
  font-size: 1.35rem;
  font-weight: 800;
}

/* —— Bolted ID plates —— */
.page-a99-callbox .cx-plates-kicker,
.page-a99-callbox .cx-jacks-kicker {
  margin: 0 0 10px;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--cf-text-cone);
}
.page-a99-callbox .cx-plate-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
}
.page-a99-callbox .cx-plate {
  position: relative;
  padding: 14px 14px 14px 18px;
  background:
    linear-gradient(180deg, #3a424a 0%, #2a323a 100%);
  color: #e8eef2;
  border: 2px solid #000;
  box-shadow: 3px 3px 0 var(--cf-asphalt);
  opacity: 0;
  transform: translateY(10px);
  animation: cxPlateIn 420ms var(--cx-ease) forwards;
  animation-delay: calc(220ms + var(--cx-pi, 0) * 55ms);
}
.page-a99-callbox .cx-plate::before,
.page-a99-callbox .cx-plate::after {
  content: "";
  position: absolute;
  left: 6px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 35%, #d0d4d8, #5a6068);
  border: 1px solid #000;
}
.page-a99-callbox .cx-plate::before { top: 8px; }
.page-a99-callbox .cx-plate::after { bottom: 8px; }
.page-a99-callbox .cx-plate em {
  display: block;
  margin-bottom: 4px;
  font-style: normal;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  color: var(--cf-signal);
}
.page-a99-callbox .cx-plate strong {
  display: block;
  margin-bottom: 4px;
  font-size: 0.88rem;
  font-weight: 800;
  color: #fff;
}
.page-a99-callbox .cx-plate p {
  margin: 0;
  font-size: 0.85rem;
  font-weight: 500;
  color: var(--cf-soft-on-dark);
  line-height: 1.4;
  word-break: break-word;
}

/* —— Jack ports —— */
.page-a99-callbox .cx-jack-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}
.page-a99-callbox .cx-jack {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  text-decoration: none;
  background: var(--cf-surface);
  border: 2px solid var(--cf-asphalt);
  box-shadow: 3px 3px 0 var(--cf-asphalt);
  color: var(--cf-ink);
  transition: transform 160ms ease, background 160ms ease;
}
.page-a99-callbox .cx-jack:hover {
  transform: translate(-2px, -2px);
  background: var(--cf-signal);
}
.page-a99-callbox .cx-jack-port {
  flex: 0 0 36px;
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  background: var(--cf-asphalt);
  border: 2px solid #000;
  border-radius: 50%;
}
.page-a99-callbox .cx-jack-port i {
  display: block;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--cf-cone);
  box-shadow: inset 0 0 0 3px var(--cf-asphalt);
}
.page-a99-callbox .cx-jack--help .cx-jack-port i { background: var(--cf-tape); }
.page-a99-callbox .cx-jack--track .cx-jack-port i { background: var(--cf-signal); }
.page-a99-callbox .cx-jack--call .cx-jack-port i { background: var(--cf-ok); }
.page-a99-callbox .cx-jack-copy {
  display: grid;
  gap: 2px;
  min-width: 0;
}
.page-a99-callbox .cx-jack-copy strong {
  font-family: var(--cf-font-display);
  font-size: 1.05rem;
  font-weight: 400;
}
.page-a99-callbox .cx-jack-copy em {
  font-style: normal;
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--cf-mute);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

@keyframes cxHouseIn {
  to { opacity: 1; transform: translateY(0); }
}
@keyframes cxBoxIn {
  to { opacity: 1; transform: translateY(0); }
}
@keyframes cxPlateIn {
  to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 900px) {
  .page-a99-callbox .cx-plate-list,
  .page-a99-callbox .cx-jack-list {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 640px) {
  .page-a99-callbox .cx-mast-inner {
    grid-template-columns: 1fr;
    justify-items: start;
  }
  .page-a99-callbox .cx-form,
  .page-a99-callbox .cx-plate-list,
  .page-a99-callbox .cx-jack-list {
    grid-template-columns: 1fr;
  }
  .page-a99-callbox .cx-box-head {
    flex-wrap: wrap;
  }
  .page-a99-callbox .cx-status {
    margin-left: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .page-a99-callbox .cx-housing,
  .page-a99-callbox .cx-box,
  .page-a99-callbox .cx-plate,
  .page-a99-callbox .cx-boom,
  .page-a99-callbox .cx-jack {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}
