@font-face {
    font-family: "MPM Geist";
    src: url("fonts/Geist-Variable.woff2") format("woff2");
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
}
/* The query container must have an explicit size in centered Spectra flex stacks.
   A content-sized inline-size container otherwise has zero intrinsic width. */
.mpm.mpm {
    --mpm-ink: #172d24;
    --mpm-cream: #e7e0d1;
    --mpm-paper: #f4f1e8;
    --mpm-orange: #ed6a2c;
    --mpm-line: #aaa99a;
    --mpm-font-sans: "MPM Geist", Arial, sans-serif;
    --mpm-font-serif: Georgia, "Times New Roman", serif;
    --mpm-sticky-top: calc(104px + var(--wp-admin--admin-bar--height, 0px));
    display: block;
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    /* Fill the available parent, including constrained WordPress groups, without a viewport breakout. */
    max-width: 100% !important;
    align-self: stretch;
    justify-self: stretch;
    margin-inline: 0 !important;
    color: var(--mpm-ink);
    font: 400 16px/1.55 var(--mpm-font-sans);
    margin-block: 2rem;
    isolation: isolate;
    overflow-wrap: anywhere;
    container-type: inline-size;
    container-name: mpm-calculator;
}
.mpm *, .mpm *::before, .mpm *::after { box-sizing: border-box; }
.mpm [hidden] { display: none !important; }
.mpm h2, .mpm h3, .mpm p, .mpm ul, .mpm dl { margin: 0; }
.mpm h2, .mpm h3 { color: inherit; }
.mpm button, .mpm input, .mpm textarea { font: inherit; }
.mpm :where(p, span, li, dt, dd, label, legend, small, strong, b, a, button, input, textarea) { font-family: var(--mpm-font-sans); }
.mpm button { cursor: pointer; }
.mpm button:disabled, .mpm input:disabled, .mpm textarea:disabled { cursor: default; }
.mpm button:disabled { opacity: .65; }
.mpm button:focus-visible, .mpm input:focus-visible, .mpm textarea:focus-visible, .mpm a:focus-visible {
    outline: 3px solid #27684e;
    outline-offset: 4px;
}
.mpm .mpm-result button:focus-visible { outline-color: var(--mpm-paper); }
.mpm .mpm-calculator { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(300px, 1fr); align-items: start; background: var(--mpm-cream); }
.mpm .mpm-controls { padding: clamp(20px, 3vw, 42px); min-width: 0; }
.mpm fieldset { border: 0; border-bottom: 1px solid var(--mpm-line); margin: 0 0 2rem; padding: 0 0 2rem; min-width: 0; }
.mpm legend, .mpm .mpm-control-row label > span:not(.mpm-range-value) { font-size: 13px; font-weight: 800; letter-spacing: .075em; text-transform: uppercase; }
.mpm legend { padding: 0; margin-bottom: 1rem; }
.mpm .mpm-control-row { border-bottom: 1px solid var(--mpm-line); padding-bottom: 2rem; margin-bottom: 2rem; }
.mpm .mpm-control-row label { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-bottom: 1rem; }
.mpm .mpm-range-value { color: var(--mpm-orange); font: italic 25px var(--mpm-font-serif); white-space: nowrap; }
/* Own the track and thumb so Astra/browser defaults cannot recolor either slider. */
.mpm.mpm input[type="range"] { -webkit-appearance: none; appearance: none; display: block; width: 100%; height: 36px; min-height: 36px; margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; accent-color: var(--mpm-orange); cursor: pointer; }
.mpm.mpm input[type="range"]:focus { background: transparent; box-shadow: none; outline: none; }
.mpm.mpm input[type="range"]:focus-visible { outline: 3px solid var(--mpm-ink); outline-offset: 4px; }
.mpm.mpm input[type="range"]::-webkit-slider-runnable-track { height: 6px; border: 0; border-radius: 999px; background: linear-gradient(to right, var(--mpm-orange) 0%, var(--mpm-orange) var(--mpm-range-progress, 0%), var(--mpm-line) var(--mpm-range-progress, 0%), var(--mpm-line) 100%); box-shadow: none; }
.mpm.mpm input[type="range"]::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; width: 18px; height: 18px; margin-top: -6px; border: 0; border-radius: 50%; background: var(--mpm-orange); box-shadow: none; }
.mpm.mpm input[type="range"]::-moz-range-track { height: 6px; border: 0; border-radius: 999px; background: var(--mpm-line); box-shadow: none; }
.mpm.mpm input[type="range"]::-moz-range-progress { height: 6px; border: 0; border-radius: 999px; background: var(--mpm-orange); }
.mpm.mpm input[type="range"]::-moz-range-thumb { width: 18px; height: 18px; border: 0; border-radius: 50%; background: var(--mpm-orange); box-shadow: none; }
.mpm .mpm-range-landmarks { display: flex; justify-content: space-between; gap: .6rem; font-size: .7rem; margin-top: .5rem; }
.mpm .mpm-range-landmarks span:last-child { text-align: right; }
.mpm .mpm-range-landmarks span:nth-child(2) { text-align: center; }
.mpm .mpm-format-options { display: grid; grid-template-columns: 1fr 1fr; gap: .7rem; }
.mpm .mpm-format-option { display: flex; align-items: flex-start; gap: .65rem; border: 1px solid var(--mpm-line); padding: 1rem; cursor: pointer; }
.mpm .mpm-format-option:has(input:checked), .mpm .mpm-option:has(input:checked) { background: #f6e6d4; border: 2px solid #a34115; padding: calc(1rem - 1px); }
.mpm .mpm-format-option b { display: block; font: italic 22px/1.25 var(--mpm-font-serif); }
.mpm .mpm-format-option small { display: block; margin-top: .4rem; font-size: 14px; line-height: 1.45; }
.mpm input[type="checkbox"], .mpm input[type="radio"] { flex: 0 0 18px; width: 18px; height: 18px; margin: 3px 0 0; accent-color: var(--mpm-ink); }
.mpm .mpm-options-intro { font: 16px/1.62 var(--mpm-font-serif); white-space: pre-line; }
.mpm .mpm-option-grid { display: grid; grid-template-columns: 1fr; gap: .65rem; margin-top: 1.1rem; }
.mpm .mpm-option { display: flex; align-items: flex-start; gap: .7rem; border: 1px solid var(--mpm-line); padding: 1rem; cursor: pointer; }
.mpm .mpm-option-copy { flex: 1; min-width: 0; }
.mpm .mpm-option-copy b { display: block; font-size: 16px; font-weight: 780; }
.mpm .mpm-option-copy small { display: block; font-size: 13px; margin-top: .3rem; line-height: 1.5; }
.mpm .mpm-option > strong { font-size: 15px; white-space: nowrap; }
.mpm .mpm-control-row small { display: block; margin-top: .65rem; font-size: .8rem; line-height: 1.6; }
.mpm .mpm-travel { margin: 0; border: 0; padding: 0; }
.mpm .mpm-result { position: sticky; top: var(--mpm-sticky-top); align-self: start; min-height: calc(100vh - var(--mpm-sticky-top) - 20px); background: var(--mpm-ink); color: var(--mpm-paper); padding: clamp(24px, 3vw, 42px); display: flex; flex-direction: column; align-items: stretch; min-width: 0; }
.mpm .mpm-kicker { font-size: .66rem; font-weight: 700; letter-spacing: .13em; }
.mpm .mpm-result-intro { font: italic 1.45rem/1.4 Georgia, serif; margin: 3rem 0 .6rem; }
.mpm .mpm-total { display: block; color: var(--mpm-orange); font: 400 clamp(2.6rem, 4vw, 4rem)/1.15 Georgia, serif; letter-spacing: -.035em; }
.mpm .mpm-breakdown { border-top: 1px solid currentColor; margin-block: 1.7rem 1rem; }
.mpm .mpm-breakdown > div { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; padding-block: .75rem; border-bottom: 1px solid #65756b; }
.mpm .mpm-breakdown dt { font: 15px/1.5 var(--mpm-font-serif); }
.mpm .mpm-breakdown dd { margin: 0; font: 16px/1.5 var(--mpm-font-serif); white-space: nowrap; }
.mpm .mpm-estimate-note { color: #d6dacd; font-size: .8rem; line-height: 1.7; margin-bottom: 1.6rem; white-space: pre-line; }
.mpm .mpm-button { display: flex; align-items: center; justify-content: space-between; gap: 1rem; border: 2px solid transparent; border-radius: 0; color: var(--mpm-ink); background: var(--mpm-orange); padding: 1rem 1.2rem; min-height: 50px; width: 100%; font-weight: 750; font-size: .9rem; text-align: left; box-shadow: none; text-decoration: none; }
.mpm .mpm-button:hover:not(:disabled) { background: #ff8a4f; }
.mpm .mpm-included { padding-top: 2.4rem; margin-top: auto; }
.mpm .mpm-included h3 { font-size: .73rem; font-weight: 750; text-transform: uppercase; letter-spacing: .08em; margin-bottom: 1rem; }
.mpm .mpm-included ul { display: grid; gap: .65rem; list-style: none; padding: 0; font-size: .8rem; }
.mpm .mpm-included li { display: flex; gap: .65rem; align-items: baseline; }
.mpm .mpm-included li span { color: var(--mpm-orange); }
.mpm .mpm-dialog { background: var(--mpm-paper); color: var(--mpm-ink); border: 0; border-radius: 6px; width: min(700px, calc(100vw - 24px)); max-width: 700px; max-height: calc(100dvh - 32px); padding: 0; box-shadow: 0 16px 80px #0005; margin: auto; overflow-y: auto; overscroll-behavior: contain; }
.mpm .mpm-dialog::backdrop { background: #10231bdd; backdrop-filter: blur(3px); }
.mpm .mpm-dialog-inner { padding: clamp(20px, 4vw, 38px); }
.mpm .mpm-close { display: flex; align-items: center; gap: .7rem; margin: 0 0 1.4rem auto; border: 1px solid var(--mpm-line); background: transparent; color: var(--mpm-ink); border-radius: 0; padding: .45rem .7rem; min-height: 40px; font-size: .8rem; }
.mpm .mpm-close span { font-size: 1.4rem; line-height: 1; }
.mpm .mpm-dialog h2 { font: 400 clamp(1.8rem, 4vw, 2.6rem)/1.15 Georgia, serif; letter-spacing: -.025em; }
.mpm .mpm-dialog h2 + p { font-size: .88rem; line-height: 1.6; margin: .8rem 0 1.4rem; white-space: pre-line; }
.mpm .mpm-modal-summary { background: var(--mpm-cream); padding: 1.2rem; margin-bottom: 1.4rem; }
.mpm .mpm-modal-summary h3 { font-size: .75rem; text-transform: uppercase; letter-spacing: .06em; }
.mpm .mpm-modal-summary .mpm-breakdown { margin-top: .8rem; }
.mpm .mpm-modal-summary .mpm-breakdown > div { border-color: var(--mpm-line); padding-block: .5rem; }
.mpm .mpm-modal-total { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; }
.mpm .mpm-modal-total span { font-size: .85rem; font-weight: 650; }
.mpm .mpm-modal-total strong { font: 400 1.8rem/1.2 Georgia, serif; white-space: nowrap; }
.mpm .mpm-required-hint { font-size: .76rem; margin-bottom: 1rem; }
.mpm .mpm-field-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.mpm .mpm-field { min-width: 0; }
.mpm .mpm-field-wide { grid-column: 1 / -1; }
.mpm .mpm-field label { display: block; font-size: .83rem; font-weight: 700; margin-bottom: .4rem; }
.mpm .mpm-field input, .mpm .mpm-field textarea { display: block; width: 100%; min-width: 0; border: 1px solid #828f80; border-radius: 2px; background: #fff; color: var(--mpm-ink); padding: .65rem .8rem; min-height: 44px; font-size: .94rem; box-shadow: none; }
.mpm .mpm-field input::placeholder, .mpm .mpm-field textarea::placeholder { color: #647162; opacity: 1; }
.mpm .mpm-field textarea { resize: vertical; }
.mpm .mpm-field input:disabled, .mpm .mpm-field textarea:disabled { background: #edece5; opacity: 1; color: #49584a; }
.mpm .mpm-consent { display: flex; align-items: flex-start; gap: .7rem; margin-block: 1.1rem; font-size: .8rem; line-height: 1.6; }
.mpm .mpm-consent a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.mpm .mpm-status { white-space: pre-line; padding: 1rem; border: 1px solid currentColor; font-size: .88rem; margin-bottom: 1rem; }
.mpm .mpm-status-error { color: #702909; background: #fff0e5; }
.mpm .mpm-status-success { color: #17492c; background: #e4eedf; }
.mpm .mpm-status:focus { outline: 2px solid currentColor; outline-offset: 3px; }
.mpm .mpm-honeypot { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.mpm-editor .mpm-editor-notice { padding: 12px 16px; background: #f0f0f0; border-left: 3px solid #172d24; font-size: 13px; line-height: 1.5; }
.mpm-editor .mpm-editor-preview { pointer-events: none; user-select: none; }
.mpm-editor .mpm-result { position: static; min-height: 0; }
@media (max-width: 780px) {
    .mpm .mpm-calculator { grid-template-columns: 1fr; }
    .mpm .mpm-result { position: static; top: auto; min-height: 0; }
    .mpm .mpm-result-intro { margin-top: 1.6rem; }
    .mpm .mpm-total { font-size: 3.6rem; }
    .mpm .mpm-controls, .mpm .mpm-result { padding: 26px 22px; }
}
@media (max-width: 420px) {
    .mpm .mpm-field-grid, .mpm .mpm-format-options { grid-template-columns: 1fr; }
    .mpm .mpm-control-row label { align-items: flex-start; }
    .mpm .mpm-range-value { font-size: 1.35rem; }
    .mpm .mpm-option { flex-wrap: wrap; }
    .mpm .mpm-option > strong { margin-left: 29px; }
    .mpm .mpm-option-copy { flex-basis: calc(100% - 32px); }
    .mpm .mpm-range-landmarks { font-size: .65rem; }
    .mpm .mpm-dialog { max-height: calc(100dvh - 16px); }
}
@container mpm-calculator (max-width: 780px) {
    .mpm .mpm-calculator { grid-template-columns: 1fr; }
    .mpm .mpm-result { position: static; top: auto; min-height: 0; }
    .mpm .mpm-result-intro { margin-top: 1.6rem; }
    .mpm .mpm-controls, .mpm .mpm-result { padding: 26px 22px; }
}
@container mpm-calculator (max-width: 420px) {
    .mpm .mpm-format-options { grid-template-columns: 1fr; }
    .mpm .mpm-option { flex-wrap: wrap; }
    .mpm .mpm-option > strong { margin-left: 29px; }
    .mpm .mpm-option-copy { flex-basis: calc(100% - 32px); }
}
@media (prefers-reduced-motion: reduce) { .mpm * { scroll-behavior: auto !important; } }
