/* PFL Support Calculators — responsive, theme-agnostic */

.pfl-calc-wrap {
  --pfl-primary: #5c1024;
  --pfl-accent: #c9a24b;
  --pfl-bg: #faf3e8;
  --pfl-panel: #fff;
  --pfl-border: #e6d4a8;
  --pfl-input-bg: #faf3e8;
  --pfl-text: #3a2e2e;
  --pfl-text-muted: #4d4040;
  --pfl-result-start: #0c1f3a;
  --pfl-result-end: #5c1024;
  --pfl-result-text: #e6d4a8;
  --pfl-btn-bg: #5c1024;
  --pfl-btn-text: #fff;
  --pfl-btn-hover: #4a0d1d;
  --pfl-font-heading: "Cormorant Garamond", Georgia, serif;
  --pfl-font-body: "Lato", system-ui, sans-serif;
  --pfl-max-width: 960px;
  --pfl-radius: 8px;
  --pfl-form-padding: 32px;

  font-family: var(--pfl-font-body);
  color: var(--pfl-text);
  line-height: 1.75;
  max-width: var(--pfl-max-width);
  margin: 0 auto 48px;
  box-sizing: border-box;
}

.pfl-calc-wrap *,
.pfl-calc-wrap *::before,
.pfl-calc-wrap *::after {
  box-sizing: border-box;
}

.pfl-calc-head {
  text-align: center;
  margin-bottom: 28px;
}

.pfl-calc-eyebrow {
  display: block;
  color: var(--pfl-accent);
  text-transform: uppercase;
  letter-spacing: 3px;
  font-size: 12px;
  font-weight: 700;
  margin-bottom: 8px;
}

.pfl-calc-title {
  font-family: var(--pfl-font-heading);
  font-size: clamp(1.6rem, 4vw, 2rem);
  font-weight: 600;
  color: var(--pfl-primary);
  margin: 0 0 12px;
  line-height: 1.2;
}

.pfl-calc-divider {
  width: 60px;
  height: 3px;
  background: var(--pfl-accent);
  margin: 0 auto 16px;
}

.pfl-calc-desc {
  font-size: 16px;
  color: var(--pfl-text-muted);
  max-width: 720px;
  margin: 0 auto;
}

.pfl-calc-panel {
  background: var(--pfl-panel);
  border: 1px solid var(--pfl-border);
  border-radius: var(--pfl-radius);
  box-shadow: 0 12px 32px rgba(92, 16, 36, 0.08);
  overflow: hidden;
}

.pfl-calc-form {
  padding: var(--pfl-form-padding);
}

.pfl-calc-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
}

.pfl-calc-field label {
  display: block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.8px;
  text-transform: uppercase;
  color: var(--pfl-primary);
  margin-bottom: 6px;
}

.pfl-calc-optional {
  font-weight: 400;
  text-transform: none;
  letter-spacing: 0;
}

.pfl-calc-field input,
.pfl-calc-field select {
  width: 100%;
  padding: 12px 14px;
  border: 1px solid var(--pfl-border);
  border-radius: calc(var(--pfl-radius) - 2px);
  font-family: var(--pfl-font-body);
  font-size: 15px;
  color: var(--pfl-text);
  background: var(--pfl-input-bg);
  transition: border-color 0.2s, background 0.2s;
}

.pfl-calc-field input:focus,
.pfl-calc-field select:focus {
  outline: none;
  border-color: var(--pfl-accent);
  background: #fff;
}

.pfl-calc-field--full {
  grid-column: 1 / -1;
}

.pfl-calc-actions {
  text-align: center;
  margin-top: 8px;
  padding-bottom: 4px;
}

.pfl-calc-btn {
  display: inline-block;
  background: var(--pfl-btn-bg);
  color: var(--pfl-btn-text);
  padding: 14px 32px;
  border-radius: 4px;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  font-size: 13px;
  border: 1px solid var(--pfl-btn-bg);
  cursor: pointer;
  text-decoration: none;
  font-family: var(--pfl-font-body);
  transition: background 0.2s, color 0.2s;
}

.pfl-calc-btn:hover,
.pfl-calc-btn:focus {
  background: var(--pfl-btn-hover);
  border-color: var(--pfl-btn-hover);
  color: var(--pfl-btn-text);
}

.pfl-calc-btn--outline {
  background: transparent;
  color: var(--pfl-primary);
  border-color: var(--pfl-primary);
}

.pfl-calc-btn--outline:hover {
  background: var(--pfl-primary);
  color: var(--pfl-btn-text);
}

.pfl-calc-result {
  margin-top: 20px;
  padding: 28px 24px;
  background: linear-gradient(135deg, var(--pfl-result-start), var(--pfl-result-end));
  border-radius: var(--pfl-radius);
  color: #fff;
  text-align: center;
}

.pfl-calc-result.is-empty {
  background: var(--pfl-bg);
  color: var(--pfl-text-muted);
  border: 1px dashed var(--pfl-border);
}

.pfl-calc-result.is-empty .pfl-calc-eyebrow {
  color: var(--pfl-accent);
}

.pfl-calc-result.is-empty .pfl-calc-amount {
  font-family: var(--pfl-font-body);
  font-size: 1rem;
  color: var(--pfl-text-muted);
}

.pfl-calc-result:not(.is-empty) .pfl-calc-eyebrow {
  color: var(--pfl-result-text);
}

.pfl-calc-amount {
  font-family: var(--pfl-font-heading);
  font-size: clamp(2rem, 5vw, 2.8rem);
  color: var(--pfl-result-text);
  line-height: 1.1;
  margin: 8px 0;
}

.pfl-calc-range,
.pfl-calc-detail,
.pfl-calc-legal {
  font-size: 14px;
  margin: 8px 0 0;
}

.pfl-calc-result:not(.is-empty) .pfl-calc-range,
.pfl-calc-result:not(.is-empty) .pfl-calc-detail {
  color: #e8dfd0;
}

.pfl-calc-result:not(.is-empty) .pfl-calc-legal a {
  color: var(--pfl-result-text);
  border-bottom: 1px solid var(--pfl-accent);
}

.pfl-calc-official {
  padding: 20px 24px;
  text-align: center;
  background: var(--pfl-panel);
  border-top: 1px solid var(--pfl-border);
}

.pfl-calc-official p {
  margin: 0 0 12px;
  font-size: 14px;
  color: var(--pfl-text-muted);
}

.pfl-calc-disclaimer {
  background: var(--pfl-bg);
  border-top: 1px solid var(--pfl-border);
  padding: 16px 24px;
  font-size: 13px;
  color: var(--pfl-text-muted);
  text-align: center;
}

.pfl-calc-disclaimer a {
  color: var(--pfl-primary);
  font-weight: 600;
  text-decoration: none;
  border-bottom: 1px solid var(--pfl-accent);
}

@media (max-width: 700px) {
  .pfl-calc-grid {
    grid-template-columns: 1fr;
  }

  .pfl-calc-form {
    padding: calc(var(--pfl-form-padding) * 0.75);
  }

  .pfl-calc-btn {
    width: 100%;
  }
}
