.pricing-hero {
  margin:0 20px;
  padding:36px 0 64px;
  overflow:hidden;
  background:
    radial-gradient(circle at 85% 16%,#fff9 0 9%,transparent 9.2%),
    radial-gradient(circle at 92% 35%,#fff6 0 5%,transparent 5.2%),
    linear-gradient(125deg,#eee5f7 0%,#f8e9e1 57%,#f4f0d8 100%);
  border-radius:10px
}
.pricing-hero .seo-breadcrumb {
  margin-bottom:44px
}
.pricing-hero-grid {
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);
  align-items:center;
  gap:clamp(30px,5vw,80px)
}
.pricing-hero-copy {
  min-width:0
}
.pricing-hero-copy .eyebrow {
  margin-bottom:22px;
  color:#704bb1
}
.pricing-hero-copy h1 {
  max-width:740px;
  font-size:clamp(3.5rem,5.2vw,5.5rem);
  line-height:.96
}
.pricing-hero-copy h1 em {
  font-size:1.08em
}
.pricing-hero-copy>p {
  max-width:610px;
  margin-top:25px;
  color:#5c4a64;
  font-size:1.1rem
}
.pricing-intro-card {
  display:grid;
  grid-template-columns:54px 1fr;
  gap:20px;
  align-items:start;
  width:100%;
  margin:0;
  padding:26px 30px;
  background:#fffcf8e8;
  border:1px solid #ffffffb0;
  border-radius:8px;
  box-shadow:0 18px 45px #35233f0c
}
.pricing-spark {
  color:#704bb1;
  font-size:2.5rem;
  line-height:1
}
.pricing-intro-card p {
  color:#5d5261
}
.pricing-rental-note {
  margin-top:15px;
  padding-top:14px;
  border-top:1px solid #35233f20;
  font-size:.83rem
}
.pricing-rental-note a {
  display:inline-flex;
  align-items:center;
  gap:5px;
  color:#51386a;
  font-weight:650
}
.pricing-rental-note a svg {
  width:16px;
  height:16px
}
.pricing-builder {
  padding:100px 0 120px
}
.pricing-status {
  margin:0 0 28px;
  padding:18px 22px;
  border-radius:8px
}
.pricing-status-success {
  background:#e9efd2;
  color:#29331f
}
.pricing-status-error {
  background:#fbe3df;
  color:#682e2e
}
.pricing-layout {
  display:grid;
  grid-template-columns:minmax(0,1fr) 370px;
  gap:72px;
  align-items:start
}
.pricing-form-main {
  min-width:0
}
.pricing-step-heading {
  max-width:700px;
  margin-bottom:38px
}
.pricing-step-heading .eyebrow {
  margin-bottom:18px;
  color:#704bb1
}
.pricing-step-heading .section-title {
  font-size:clamp(2.3rem,4vw,3.6rem)
}
.pricing-step-heading>p {
  max-width:630px;
  margin-top:17px;
  color:var(--muted)
}
.pricing-category {
  padding:40px 0 48px;
  border-top:1px solid var(--line)
}
.pricing-category-heading {
  display:grid;
  grid-template-columns:38px minmax(0,1fr);
  gap:17px;
  margin-bottom:24px
}
.pricing-category-number {
  color:#9d73ca;
  font-size:1.6rem
}
.pricing-category-heading h3 {
  font-size:1.8rem;
  line-height:1.2
}
.pricing-category-heading p {
  max-width:760px;
  margin-top:11px;
  color:var(--muted);
  font-size:.9rem
}
.pricing-option-list {
  display:grid;
  grid-template-columns:1fr;
  gap:18px
}
.pricing-option {
  min-width:0;
  padding:26px 28px 22px;
  background:linear-gradient(135deg,#fff 35%,#fcf9ff);
  border:1px solid #e9e0ed;
  border-radius:22px;
  box-shadow:0 4px 18px #35233f06;
  transition:border-color .2s,box-shadow .2s,background .2s
}
.pricing-option:hover,
.pricing-option:focus-within {
  border-color:#c9b3dd;
  box-shadow:0 8px 26px #35233f0c
}
.pricing-option.is-selected {
  background:linear-gradient(135deg,#faf5ff,#f3ebfa);
  border-color:#a67bc4;
  box-shadow:0 8px 26px #704bb114
}
.pricing-option-top {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:15px
}
.pricing-option-select {
  display:flex;
  align-items:center;
  gap:12px;
  min-width:0;
  cursor:pointer
}
.pricing-option-select input {
  position:absolute;
  width:1px;
  height:1px;
  opacity:0
}
.pricing-check {
  display:grid;
  flex:0 0 32px;
  place-items:center;
  width:32px;
  height:32px;
  border:2px solid #c6b3d3;
  border-radius:50%;
  background:#fff;
  box-shadow:0 2px 5px #35233f08
}
.pricing-option-select input:checked+.pricing-check {
  border-color:#704bb1;
  background:#704bb1;
  box-shadow:0 3px 9px #704bb12b
}
.pricing-option-select input:checked+.pricing-check:after {
  content:'';
  width:12px;
  height:7px;
  border-left:2px solid #fff;
  border-bottom:2px solid #fff;
  transform:rotate(-45deg) translateY(-1px)
}
.pricing-option-select input:focus-visible+.pricing-check {
  outline:3px solid #9760d8;
  outline-offset:3px
}
.pricing-option-name {
  font-size:1rem;
  font-weight:600;
  line-height:1.35
}
.pricing-range {
  flex-shrink:0;
  padding:6px 12px;
  border-radius:999px;
  background:#f0e8f7;
  color:#68468f;
  font-size:.89rem;
  white-space:nowrap
}
.pricing-option-description {
  margin:14px 0 0 44px;
  color:var(--muted);
  font-size:.82rem;
  line-height:1.55
}
.pricing-option-bottom {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:22px 0 0 44px;
  padding-top:17px;
  border-top:1px solid #e9e0ed;
  color:#756a7b;
  font-size:.76rem
}
.pricing-quantity-label {
  display:flex;
  align-items:center;
  gap:12px;
  color:var(--ink);
  font-weight:550
}
.pricing-quantity-label input {
  width:62px;
  min-height:44px;
  padding:8px;
  border:1px solid #ded2e7;
  border-radius:12px;
  background:#fff;
  text-align:center
}
.pricing-quantity-label input:focus-visible {
  outline:2px solid #9760d8;
  outline-offset:3px
}
.pricing-event-details {
  padding:55px 0 0;
  border-top:1px solid var(--line)
}
.pricing-fields {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:20px
}
.pricing-field {
  display:flex;
  flex-direction:column;
  gap:8px;
  color:var(--ink);
  font-size:.86rem;
  font-weight:600
}
.pricing-field b {
  color:#8c4781
}
.pricing-field input,
.pricing-field textarea {
  width:100%;
  min-height:50px;
  padding:12px 14px;
  color:var(--ink);
  background:#fff;
  border:1px solid #d9d0dc;
  border-radius:6px;
  font-weight:400
}
.pricing-field textarea {
  min-height:130px;
  resize:vertical
}
.pricing-field input:focus,
.pricing-field textarea:focus {
  border-color:#704bb1
}
.pricing-field small {
  display:block;
  margin-top:3px;
  color:var(--muted);
  font-size:.74rem;
  font-weight:400
}
.pricing-field-wide {
  grid-column:1/-1
}
.pricing-custom-note {
  margin-top:25px;
  padding:19px 22px;
  border-left:3px solid #b99adc;
  background:#f2edf5;
  color:#625568;
  font-size:.86rem
}
.pricing-event-details .pricing-summary-disclaimer {
  margin-top:12px;
  color:var(--muted);
  font-size:.78rem;
  line-height:1.55
}
.pricing-summary {
  display:flex;
  flex-direction:column;
  max-height:calc(100vh - 140px);
  max-height:calc(100dvh - 140px);
  overflow-y:auto;
  scrollbar-width:thin;
  scrollbar-color:#b99adc transparent;
  position:sticky;
  top:120px;
  padding:31px 28px;
  background:var(--plum);
  color:#fff;
  border-radius:9px;
  box-shadow:0 20px 45px #35233f1c
}
.pricing-summary>* {
  flex-shrink:0
}
.pricing-summary>.eyebrow {
  color:#d9c6f3
}
.pricing-summary h2 {
  margin-top:14px;
  font-size:1.6rem;
  line-height:1.2
}
.pricing-total {
  display:flex;
  gap:9px;
  align-items:baseline;
  margin-top:25px;
  color:#fff;
  font-family:var(--serif);
  font-size:clamp(1.8rem,3vw,2.45rem);
  line-height:1.1;
  flex-wrap:wrap
}
.pricing-summary-unit {
  margin-top:9px;
  color:#d0c4d5;
  font-size:.78rem
}
.pricing-summary-rule {
  height:1px;
  margin:24px 0;
  background:#ffffff32
}
.pricing-summary h3 {
  font-size:1rem;
  letter-spacing:0
}
.pricing-summary-list {
  flex-shrink:1;
  min-height:60px;
  overflow-y:auto;
  max-height:35vh;
  max-height:35dvh;
  scrollbar-width:thin;
  scrollbar-color:#b99adc transparent;
  padding-right:8px;
  display:grid;
  gap:12px;
  padding:0 8px 0 0;
  margin:16px 0 0;
  list-style:none
}
.pricing-summary-list li {
  display:flex;
  justify-content:space-between;
  gap:12px;
  color:#e7ddec;
  font-size:.76rem;
  line-height:1.4
}
.pricing-summary-list strong {
  text-align:right;
  overflow-wrap:anywhere;
  min-width:0;
  max-width:55%;
  color:#fff;
  font-weight:550
}
.pricing-summary-list .pricing-summary-empty {
  color:#c7b7ce
}
.pricing-summary-disclaimer {
  margin-top:15px;
  color:#d0c4d5;
  font-size:.73rem;
  line-height:1.55
}
.pricing-submit {
  width:100%;
  margin-top:24px;
  justify-content:space-between;
  color:var(--plum);
  background:var(--lilac);
  text-align:left
}
.pricing-submit:hover {
  background:#eadcfb
}
.pricing-privacy-note {
  margin-top:12px;
  color:#c7b7ce;
  font-size:.7rem;
  line-height:1.5;
  text-align:center
}
.pricing-honeypot {
  position:absolute!important;
  left:-10000px!important;
  width:1px!important;
  height:1px!important;
  overflow:hidden!important
}
.pricing-check { transition:background .2s,border-color .2s,transform .2s }
.pricing-option.is-selected .pricing-check { transform:scale(1.08) }
.pricing-summary-list:focus-visible { outline:2px solid var(--lilac); outline-offset:5px }
.pricing-submit:disabled { opacity:.5; cursor:not-allowed }
@media(prefers-reduced-motion:reduce) {
  .pricing-option,.pricing-check { transition:none }
}
@media(max-width:1050px) {
  .pricing-hero-grid { grid-template-columns:1fr; gap:32px; max-width:780px; margin:auto }
  .pricing-hero-copy h1 { font-size:clamp(3.5rem,7vw,6rem) }
  .pricing-intro-card { max-width:none }

  .pricing-layout {
    grid-template-columns:minmax(0,1fr) 330px;
    gap:38px
  }
  .pricing-option-list {
    grid-template-columns:1fr
  }
}
/* Let the document scroll normally when a short window cannot fit the sticky card. */
@media(min-width:821px) and (max-height:760px) {
  .pricing-summary { position:relative; top:auto; max-height:none; overflow:visible }
}
@media(max-width:820px) {
  .pricing-layout {
    grid-template-columns:1fr;
    gap:38px
  }
  .pricing-summary {
    position:relative;
    top:auto;
    max-height:none;
    overflow:visible;
    grid-row:1
  }
  .pricing-summary-list {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
  .pricing-summary-list .pricing-summary-empty {
    grid-column:1/-1
  }
  .pricing-option-list {
    grid-template-columns:1fr
  }
}
@media(max-width:600px) {
  .pricing-hero {
    margin:0 10px;
    padding:28px 0 55px
  }
  .pricing-hero .seo-breadcrumb {
    margin-bottom:42px
  }
  .pricing-hero-copy {
    padding:0 8px
  }
  .pricing-hero-copy h1 {
    font-size:clamp(3.4rem,16vw,5.3rem)
  }
  .pricing-hero-copy>p {
    font-size:1rem
  }
  .pricing-intro-card {
    width:100%;
    grid-template-columns:30px 1fr;
    gap:13px;
    margin-top:0;
    padding:20px
  }
  .pricing-spark {
    font-size:1.7rem
  }
  .pricing-builder {
    padding:65px 0 80px
  }
  .pricing-step-heading .section-title {
    font-size:2.45rem
  }
  .pricing-category {
    padding:31px 0 36px
  }
  .pricing-category-heading {
    grid-template-columns:25px minmax(0,1fr);
    gap:11px
  }
  .pricing-category-heading h3 {
    font-size:1.5rem
  }
  .pricing-option-list,
  .pricing-fields {
    grid-template-columns:1fr
  }
  .pricing-option {
    padding:20px 18px 18px;
    border-radius:18px
  }
  .pricing-option-top {
    flex-wrap:wrap;
    gap:12px
  }
  .pricing-range {
    margin-left:44px;
    font-size:.8rem
  }
  .pricing-option-description,
  .pricing-option-bottom {
    margin-left:0
  }
  .pricing-option-bottom {
    align-items:flex-start;
    flex-direction:column;
    gap:14px
  }
  .pricing-quantity-label {
    width:100%;
    justify-content:space-between
  }
  .pricing-field-wide {
    grid-column:auto
  }
  .pricing-summary {
    padding:25px 21px
  }
  .pricing-summary-list {
    grid-template-columns:1fr
  }
}

.pricing-customization {
  display:none;
  margin:20px 0 0 44px;
  padding:17px 0 0;
  border-top:1px solid #e6dfe7;
  gap:9px;
  font-size:.82rem
}
.pricing-option.is-selected .pricing-customization, .pricing-option:has([data-price-select]:checked) .pricing-customization { display:flex; flex-direction:column; animation:pricing-choice-reveal .25s ease-out }
.pricing-customization label { font-weight:650; color:#51386a }
.pricing-customization select {
  width:100%; min-width:0; min-height:44px;
  padding:9px 44px 9px 11px;
  border:1px solid #b99adc; border-radius:12px;
  appearance:none; -webkit-appearance:none;
  background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 10'%3E%3Cpath d='M1 1l7 7 7-7' fill='none' stroke='%2335233f' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 16px center / 14px 9px;
  color:var(--ink); font:inherit
}
@media(forced-colors:active) { .pricing-customization select { appearance:auto; -webkit-appearance:auto; background-image:none } }
.pricing-customization select:focus-visible { outline:2px solid #9760d8; outline-offset:3px }
.pricing-customization p { color:var(--muted); font-size:.78rem; line-height:1.55 }
.pricing-quantity-label input:disabled { opacity:.55 }
@keyframes pricing-choice-reveal { from { opacity:0; transform:translateY(-5px) } to { opacity:1; transform:translateY(0) } }
@media(prefers-reduced-motion:reduce) { .pricing-option.is-selected .pricing-customization, .pricing-option:has([data-price-select]:checked) .pricing-customization { animation:none } }
@media(max-width:600px) { .pricing-customization { margin-left:0 } }
