/* Optimizers Conference ticket calculator */
.calculator-launch{margin-top:1.4rem;border:0;background:var(--purple);color:#fff;cursor:pointer}
.ticket-calculator-modal[hidden]{display:none}
.ticket-calculator-modal{position:fixed;inset:0;z-index:12000;display:grid;place-items:center;padding:20px;overflow-y:auto}
.ticket-calculator-backdrop{position:fixed;inset:0;background:rgba(22,10,34,.82);backdrop-filter:blur(6px)}
.ticket-calculator-dialog{position:relative;z-index:1;width:min(1180px,100%);max-height:calc(100vh - 40px);overflow-y:auto;border-radius:28px;background:#fff;box-shadow:0 35px 100px rgba(16,6,24,.4)}
.ticket-calculator-close{position:absolute;z-index:2;top:16px;right:16px;display:grid;place-items:center;width:46px;height:46px;padding:0;border:2px solid var(--purple);border-radius:50%;background:#fff;color:var(--ink);font-size:2rem;line-height:1;cursor:pointer}
.ticket-calculator-close:hover,.ticket-calculator-close:focus-visible{background:var(--purple);color:#fff}
.ticket-calculator-header{padding:clamp(2rem,5vw,4rem) clamp(1.5rem,5vw,4rem) 1.6rem;border-bottom:1px solid var(--line)}
.ticket-calculator-header p:last-child{max-width:800px;margin-bottom:0;color:var(--muted)}
.ticket-calculator-layout{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(340px,.92fr);align-items:start}
.ticket-calculator-form{padding:clamp(1.5rem,4vw,3rem)}
.calculator-group{margin:0 0 1.4rem;padding:0;border:0}
.calculator-group legend{width:100%;margin-bottom:.8rem;font-size:1.08rem;font-weight:850}
.calculator-choice{display:flex;align-items:flex-start;gap:.8rem;margin:.65rem 0;padding:1rem;border:1px solid var(--line);border-radius:16px;background:#fff;cursor:pointer}
.calculator-choice:hover{border-color:var(--purple);background:var(--purple-soft)}
.calculator-choice input{margin-top:.3rem;accent-color:var(--purple)}
.calculator-choice span{display:flex;flex:1;justify-content:space-between;gap:1rem}
.calculator-choice strong,.calculator-choice small{display:block}
.calculator-choice small{color:var(--muted);text-align:right}
.calculator-choice.is-disabled{opacity:.5;cursor:not-allowed;background:#f6f4f7}
.ticket-calculator-summary{position:sticky;top:0;min-height:100%;padding:clamp(1.5rem,4vw,3rem);background:linear-gradient(180deg,var(--purple-soft),#fff);border-left:1px solid var(--line)}
.calculator-total{margin:.2rem 0 1.2rem;color:var(--purple);font-size:clamp(3rem,7vw,5.5rem);font-weight:900;line-height:1;letter-spacing:-.05em}
.calculator-breakdown{margin-bottom:1.8rem;border-top:1px solid rgba(95,47,152,.18)}
.calculator-breakdown-row{display:flex;justify-content:space-between;gap:1rem;padding:.7rem 0;border-bottom:1px solid rgba(95,47,152,.13)}
.calculator-breakdown-row span:last-child{font-weight:800;white-space:nowrap}
.boss-letter-wrap h3{margin-bottom:.35rem}
.boss-letter-intro{margin-top:0;color:var(--muted)}
#boss-letter{width:100%;min-height:430px;resize:vertical;padding:1rem;border:1px solid #cfc4d8;border-radius:16px;background:#fff;color:var(--ink);font:inherit;line-height:1.55}
.boss-letter-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1rem}
.calculator-copy,.calculator-ticket-link{cursor:pointer}
.calculator-copy{border:0;background:var(--purple);color:#fff}
.calculator-ticket-link{background:#fff;color:var(--purple-dark);border:1px solid var(--purple)}
.calculator-copy-status{min-height:1.5em;margin:.7rem 0 0;color:var(--green);font-weight:750}
body.ticket-calculator-open{overflow:hidden}
@media(max-width:900px){.ticket-calculator-layout{grid-template-columns:1fr}.ticket-calculator-summary{position:static;border-left:0;border-top:1px solid var(--line)}}
@media(max-width:600px){.ticket-calculator-modal{padding:8px}.ticket-calculator-dialog{max-height:calc(100vh - 16px);border-radius:20px}.ticket-calculator-header{padding-top:4.5rem}.calculator-choice span{flex-direction:column;gap:.2rem}.calculator-choice small{text-align:left}.boss-letter-actions .button{width:100%}}

.calculator-discount{margin:.2rem 0 1rem;padding:.75rem 1rem;border-radius:14px;background:#e3f6eb;color:#126946;font-weight:900}


.calculator-loading,
.calculator-error{
  margin:0;
  padding:1rem 1.1rem;
  border-radius:14px;
}

.calculator-loading{
  background:var(--purple-soft);
  color:var(--muted);
}

.calculator-error{
  background:#fff0f3;
  border:1px solid #e7a8b7;
  color:#8f2340;
  font-weight:750;
}

.calculator-ticket-link[aria-disabled="true"]{
  pointer-events:none;
  opacity:.5;
}

.calculator-breakdown-row.is-discount{
  color:#17754a;
  font-weight:800;
}
