/* ==========================================================================
   FREE TOOLS (calculators + email gate) - see inc/tools.php, assets/js/tools.js
   ========================================================================== */

.tool {
  margin-block: var(--space-xl);
  padding: var(--space-xl);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
}

.tool [hidden] {
  display: none !important;
}

/* Gate */
.tool-gate {
  max-width: 480px;
  margin-inline: auto;
}

.single-post-content .tool-gate-title {
  margin-top: 0;
  font-size: var(--font-size-xl);
}

.tool-gate-form {
  display: grid;
  gap: var(--space-md);
  margin-top: var(--space-md);
}

.tool-gate-consent {
  margin: var(--space-md) 0 0;
  font-size: var(--font-size-xs);
  color: var(--color-text-tertiary);
}

.tool-optout {
  display: flex;
  align-items: center;
  gap: var(--space-xs);
  font-size: var(--font-size-sm);
  color: var(--color-text-secondary);
  cursor: pointer;
}

/* Honeypot: off-screen, never display:none (bots skip those) */
.tool-hp {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

/* Fields */
.tool-inputs {
  display: grid;
  gap: var(--space-lg);
}

.tool-field label {
  display: block;
  margin-bottom: var(--space-xs);
  font-weight: 600;
  color: var(--color-text-primary);
}

.tool-optional {
  font-weight: 400;
  color: var(--color-text-tertiary);
}

.tool-field input {
  width: 100%;
  min-height: 48px;
  padding: 0.65rem 0.9rem;
  font: inherit;
  color: var(--color-text-primary);
  background: var(--color-base);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
}

.tool-field input:focus-visible {
  outline: 2px solid var(--color-accent-orange);
  outline-offset: 1px;
}

.tool-input-wrap {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
}

.tool-input-wrap span {
  font-weight: 600;
  color: var(--color-text-secondary);
}

.tool-help {
  margin: var(--space-xs) 0 0;
  font-size: var(--font-size-sm);
  color: var(--color-text-tertiary);
}

.tool-button {
  justify-self: start;
  min-height: 48px;
  padding: 0.75rem 1.75rem;
  font: inherit;
  font-weight: 600;
  color: var(--color-on-accent);
  background: var(--color-accent-orange);
  border: 0;
  border-radius: var(--radius-full);
  cursor: pointer;
  transition:
    transform var(--transition-fast),
    background-color var(--transition-fast);
}

.tool-button:hover:not(:disabled) {
  background: var(--color-accent-hover);
  transform: translateY(-1px);
}

.tool-button:disabled {
  opacity: 0.6;
  cursor: wait;
}

.tool-gate-error,
.tool-error {
  margin: 0;
  color: var(--color-error, #b42318);
  font-size: var(--font-size-sm);
}

/* Intro, toggle, extras */
.tool-intro {
  margin: 0 0 var(--space-lg);
  color: var(--color-text-secondary);
}

.tool-toggle {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-md);
  margin: 0 0 var(--space-lg);
  padding: 0;
  border: 0;
}

.tool-toggle legend {
  margin-bottom: var(--space-xs);
  padding: 0;
  font-weight: 600;
}

.tool-toggle label {
  display: inline-flex;
  align-items: center;
  gap: var(--space-xs);
  cursor: pointer;
}

.tool-field-error {
  margin: var(--space-xs) 0 0;
  font-size: var(--font-size-sm);
  color: var(--color-error, #b42318);
}

.tool-help a {
  color: inherit;
  text-decoration: underline;
}

.tool-reset {
  margin-top: var(--space-md);
  padding: 0;
  font: inherit;
  color: var(--color-text-secondary);
  background: none;
  border: 0;
  text-decoration: underline;
  cursor: pointer;
}

/* Results */
.tool-output {
  position: relative;
  margin-top: var(--space-xl);
  padding-top: var(--space-xl);
  border-top: 1px solid var(--color-border);
}

.tool-figures {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: var(--space-md);
  margin: 0;
}

.tool-stat {
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
  margin: 0;
  padding: var(--space-md) var(--space-lg);
  background: var(--color-base);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
}

.tool-stat-primary {
  border-color: var(--color-accent-orange);
}

.tool-stat-label {
  font-size: var(--font-size-sm);
  color: var(--color-text-secondary);
}

.tool-stat-value {
  margin: 0;
  font-size: var(--font-size-3xl, 2rem);
  font-weight: 700;
  line-height: 1.1;
  color: var(--color-text-primary);
}

.tool-loss .tool-stat-value {
  color: var(--color-error, #b42318);
}

.tool-verdict,
.tool-message,
.tool-warning {
  margin: var(--space-md) 0 0;
  color: var(--color-text-primary);
}

.tool-verdict {
  font-weight: 600;
}

.tool-message {
  margin-top: 0;
  color: var(--color-text-secondary);
}

.tool-formula {
  margin-top: var(--space-xl);
  padding: var(--space-md) var(--space-lg);
  background: var(--color-base);
  border-radius: var(--radius-md);
}

.tool-formula-label {
  margin: 0 0 var(--space-xs);
  font-weight: 600;
}

.tool-formula p:not(.tool-formula-label) {
  margin: 0 0 var(--space-xs);
  font-size: var(--font-size-sm);
  color: var(--color-text-secondary);
}

/* Soft gate: the result is blurred and the email form sits over it */
.tool-output.is-locked {
  min-height: 30rem;
}

.tool-output.is-locked .tool-result {
  filter: blur(8px);
  opacity: 0.7;
  pointer-events: none;
  user-select: none;
  min-height: 11rem;
}

.tool-output.is-locked .tool-gate {
  position: absolute;
  inset: var(--space-md) 0 0;
  z-index: 1;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  max-width: none;
  padding: var(--space-md);
  overflow: auto;
  background: color-mix(in srgb, var(--color-surface) 80%, transparent);
  border-radius: var(--radius-md);
}

.tool-output.is-locked .tool-gate > * {
  width: 100%;
  max-width: 480px;
  margin-inline: auto;
}

.tool-output.is-locked .tool-gate-title {
  margin-top: 0;
}

@media (min-width: 700px) {
  .tool-inputs {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 600px) {
  .tool {
    padding: var(--space-lg);
  }
}
