.pricing-shell { max-width: 800px; margin: 0 auto; padding: clamp(36px,7vw,80px) 20px; }
.pricing-shell h1 { font: 700 clamp(2.4rem,7vw,4.8rem)/1.05 "ScaleToad Grotesk",sans-serif; letter-spacing: -.055em; margin: 0 0 20px; }
.pricing-intro { font-size: 1.15rem; margin-bottom: 30px; }
.pricing-controls { margin: 26px 0; padding: clamp(20px,5vw,40px); border: 1px solid #c7d4c8; background: #fff; border-radius: 20px; }
.pricing-controls[hidden] { display: none; }
.pricing-controls .field { margin: 0; }
.pricing-controls select { min-height: 48px; color: var(--forest,#113923); font: inherit; }
.pricing-sizing { margin-top: 30px; }
.pricing-slider { display: block; margin: 26px 0 0; }
.pricing-slider > span { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; font-weight: 600; }
.pricing-slider output { color: var(--forest,#113923); font-size: 1.35rem; font-weight: 700; text-align: right; font-variant-numeric: tabular-nums; }
.pricing-range { --range-fill: 0%; appearance: none; -webkit-appearance: none; display: block; width: 100%; min-width: 0; height: 44px; min-height: 44px; margin: 2px 0 0; padding: 0; border: 0; border-radius: 8px; background: transparent; box-shadow: none; cursor: pointer; touch-action: pan-y; accent-color: var(--forest,#113923); }
.pricing-range::-webkit-slider-runnable-track { height: 8px; border: 0; border-radius: 999px; background: linear-gradient(to right,var(--forest,#113923) 0 var(--range-fill),#dce5d7 var(--range-fill) 100%); }
.pricing-range::-webkit-slider-thumb { -webkit-appearance: none; width: 26px; height: 26px; margin-top: -9px; border: 3px solid var(--forest,#113923); border-radius: 50%; background: var(--lime,#d5ff79); box-shadow: 0 1px 3px #0b291b26; }
.pricing-range::-moz-range-track { height: 8px; border: 0; border-radius: 999px; background: #dce5d7; }
.pricing-range::-moz-range-progress { height: 8px; border-radius: 999px; background: var(--forest,#113923); }
.pricing-range::-moz-range-thumb { width: 20px; height: 20px; border: 3px solid var(--forest,#113923); border-radius: 50%; background: var(--lime,#d5ff79); box-shadow: 0 1px 3px #0b291b26; }
.pricing-range:focus-visible { outline: 3px solid var(--forest,#113923); outline-offset: 3px; }
.pricing-range:disabled { cursor: default; opacity: .7; }
.pricing-bounds { display: flex; justify-content: space-between; font-size: .78rem; color: #52684c; font-variant-numeric: tabular-nums; }
.pricing-terms { min-width: 0; border: 0; padding: 0; margin: 30px 0 0; }
.pricing-terms legend { font-weight: 600; margin-bottom: 12px; padding: 0; }
.pricing-terms > div { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; }
.pricing-terms button { min-height: 44px; padding: 10px 8px; border: 1px solid #becdb9; border-radius: 8px; background: #fff; color: var(--forest,#113923); font: 600 .9rem/1.25 "ScaleToad Grotesk",sans-serif; cursor: pointer; }
.pricing-terms button:hover { background: #edf2e9; }
.pricing-terms button[aria-pressed="true"] { border-color: var(--forest,#113923); background: var(--forest,#113923); color: var(--lime,#d5ff79); }
.pricing-terms button:focus-visible,.pricing-continue:focus-visible { outline: 3px solid var(--forest,#113923); outline-offset: 4px; }
.pricing-total { margin: 30px 0 12px; min-height: 114px; }
.pricing-total strong { font: 700 clamp(2.6rem,8vw,4rem)/1.2 "ScaleToad Grotesk",sans-serif; display: block; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.pricing-total p { color: var(--forest,#113923); margin: 10px 0; font-size: .9rem; }
.pricing-availability { min-height: 1.5em; font-size: .9rem; }
.pricing-continue { display: block; min-height: 48px; padding: 16px 20px; background: var(--forest,#113923); color: var(--lime,#d5ff79); text-align: center; font-weight: 700; border-radius: 10px; margin-top: 20px; }
.pricing-continue[aria-disabled="true"] { background: #e3e9dd; color: #52684c; cursor: not-allowed; }
.pricing-footnote { font-size: .85rem; line-height: 1.6; color: #536b62; margin: 20px 0 0; }
.pricing-footer { display: flex; flex-wrap: wrap; justify-content: center; gap: 24px; padding: 30px; border-top: 1px solid #dce5dc; }
@media (max-width: 380px) { .pricing-terms > div { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (forced-colors: active) { .pricing-range::-webkit-slider-runnable-track { background: CanvasText; } .pricing-range::-webkit-slider-thumb { background: Highlight; border-color: CanvasText; } .pricing-terms button[aria-pressed="true"] { border: 3px solid ButtonText; } }
