/* One catalogue, with recurring charges kept separate from project costs. */
.studio-calculator .project-pricing { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: clamp(1rem, 4vw, 3rem); align-items: start; margin-top: 2rem; }
.studio-calculator .project-pricing [hidden] { display: none !important; }
.studio-calculator .project-pricing fieldset { min-width: 0; padding: 1rem; border: 1px solid var(--color-border); border-radius: 12px; margin: 0 0 1.5rem; }
.studio-calculator .project-pricing legend { font-size: 1.15rem; font-weight: 700; color: var(--color-text); padding: 0 .4rem; }
.studio-calculator .project-pricing .pricing-choice { display: flex; align-items: start; gap: .8rem; margin: .6rem 0; padding: .85rem; border: 1px solid var(--color-border); border-radius: 8px; background: var(--color-surface); overflow-wrap: anywhere; }
.studio-calculator .pricing-choice:has(input:checked) { border-color: var(--color-accent); }
.studio-calculator .project-pricing input { accent-color: var(--color-accent); flex: 0 0 auto; }
.studio-calculator .project-pricing input[type=checkbox], .studio-calculator .project-pricing input[type=radio] { width: 1.2rem; height: 1.2rem; margin-top: .2rem; }
.studio-calculator .project-pricing :focus-visible { outline: 3px solid var(--color-accent); outline-offset: 4px; }
.studio-calculator .pricing-choice small { display: block; color: var(--color-text-muted); margin-top: .5rem; }
.studio-calculator .pricing-summary { min-width: 0; position: sticky; top: 8rem; padding: clamp(1rem, 3vw, 2rem); border: 1px solid var(--color-border); border-radius: 16px; background: var(--color-surface-raised); overflow-wrap: anywhere; }
.studio-calculator .pricing-summary dl { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .6rem 1rem; }
.studio-calculator .pricing-summary dd { margin: 0; text-align: right; }
.studio-calculator .pricing-total { border-top: 1px solid var(--color-border); padding-top: 1rem; color: var(--color-text); font-weight: 700; font-size: 1.3rem; }
.studio-calculator .pricing-summary .studio-calculator__button { white-space: normal; }
@media (max-width: 900px) {
  .studio-calculator .project-pricing { grid-template-columns: minmax(0, 1fr); }
  .studio-calculator .pricing-summary { position: static; }
  .studio-calculator .pricing-summary .studio-calculator__button { display: block; width: 100%; text-align: center; }
}
@media (max-width: 400px) {
  .studio-calculator .pricing-summary dl { grid-template-columns: minmax(0, 1fr); }
  .studio-calculator .pricing-summary dd { text-align: left; margin-bottom: .6rem; }
}

/* Quantity rows only. Four class selectors beat studio.css's later
   input:not([type=checkbox]):not([type=radio]):not([type=submit]) rule
   (specificity 0,3,1), without !important or a dependency on asset order. */
.studio-calculator .project-pricing .studio-calculator__quantity-option {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 4rem;
  align-items: center;
  gap: .625rem;
  min-width: 0;
  padding: .625rem .75rem;
}
.studio-calculator .studio-calculator__quantity-copy { min-width: 0; }
.studio-calculator .studio-calculator__quantity-name,
.studio-calculator .studio-calculator__quantity-price {
  display: block;
  overflow-wrap: normal;
  word-break: normal;
}
.studio-calculator .studio-calculator__quantity-price { font-size: .875rem; }
.studio-calculator .project-pricing .studio-calculator__quantity-option .studio-calculator__quantity-input {
  box-sizing: border-box;
  width: 4rem;
  min-width: 0;
  max-width: 100%;
  height: 44px;
  min-height: 44px;
  max-height: 44px;
  align-self: center;
  margin: 0;
  padding: 6px;
  text-align: center;
  color: var(--color-text);
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  border-radius: 4px;
}
