.quote-page{padding-block:calc(var(--header-height) + var(--space-xl)) var(--space-2xl)}.quote-page__inner{width:min(100% - 2rem, var(--max-width));margin-inline:auto}.quote-page__intro{max-width:40rem;margin-bottom:var(--space-xl)}.quote-page__eyebrow{margin-bottom:var(--space-sm);font-size:var(--font-size-sm);letter-spacing:.08em;text-transform:uppercase;color:var(--color-accent);font-weight:600}.quote-page__title{margin-bottom:var(--space-sm);font-size:clamp(1.75rem,3.5vw,2.5rem)}.quote-page__text{max-width:36rem;color:var(--color-muted);font-size:var(--font-size-lg)}.quote-simulator{position:relative}.quote-live-total{top:var(--header-height);z-index:20;margin-bottom:var(--space-md);border-radius:var(--radius-card);-webkit-backdrop-filter:blur(12px);background-color:#010101eb;border:1px solid #ffffff1f;position:sticky}.quote-live-total__inner{justify-content:space-between;align-items:baseline;gap:var(--space-sm);padding:.85rem 1rem;display:flex}.quote-live-total__label{font-size:var(--font-size-sm);letter-spacing:.06em;text-transform:uppercase;color:var(--color-muted);margin:0;font-weight:700}.quote-live-total__value{font-family:var(--font-family-display);color:var(--color-text);margin:0;font-size:clamp(1.25rem,3vw,1.65rem);font-weight:700}.quote-live-total__value.is-updating,.quote-summary__total-value.is-updating{animation:.35s ease-out quote-total-pulse}@keyframes quote-total-pulse{0%{opacity:.35;transform:translateY(.2rem)}to{opacity:1;transform:translateY(0)}}.quote-simulator__layout{gap:var(--space-xl);grid-template-columns:1fr;align-items:start;display:grid}.quote-simulator__main{gap:var(--space-xl);flex-direction:column;display:flex}.quote-simulator__aside{display:none}.quote-block{gap:var(--space-md);padding:var(--space-md);border-radius:var(--radius-card);background-color:#13121073;border:1px solid #ffffff1f;flex-direction:column;display:flex}.quote-block__header{flex-direction:column;gap:.35rem;display:flex}.quote-block__eyebrow{font-size:var(--font-size-sm);letter-spacing:.08em;text-transform:uppercase;color:var(--color-accent);margin:0;font-weight:600}.quote-block__title{font-size:clamp(1.35rem,2.5vw,1.75rem);font-family:var(--font-family-display);font-weight:700;line-height:var(--line-height-tight);margin:0}.quote-block__text,.quote-block__note{color:var(--color-muted);font-size:var(--font-size-sm);margin:0;line-height:1.5}.quote-block__text{font-size:var(--font-size-base)}.quote-fieldset{gap:var(--space-sm);border:0;flex-direction:column;min-inline-size:0;margin:0;padding:0;display:flex}.quote-fieldset__legend{margin-bottom:var(--space-xs);font-size:var(--font-size-sm);letter-spacing:.04em;text-transform:uppercase;color:var(--color-muted);padding:0;font-weight:600}.quote-subheading{font-size:var(--font-size-sm);letter-spacing:.04em;text-transform:uppercase;color:var(--color-text);overflow-wrap:anywhere;margin:0;font-weight:600}.quote-subgrid{gap:var(--space-md);display:grid}.quote-subgrid>*{gap:var(--space-xs);flex-direction:column;min-width:0;display:flex}.quote-choice-grid,.quote-choice-list{gap:var(--space-sm);align-items:stretch;min-width:0;display:grid}.quote-choice{border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;width:100%;min-width:0;height:100%;transition:border-color var(--transition-base), background-color var(--transition-base);background-color:#131210b8;align-items:flex-start;gap:.75rem;padding:.9rem 1rem;display:flex}.quote-choice:hover{border-color:var(--color-border-hover)}.quote-choice.is-selected{border-color:var(--color-accent);background-color:#84130138}.quote-choice.is-disabled{opacity:.45;cursor:not-allowed}.quote-choice__input{accent-color:var(--color-accent);flex-shrink:0;margin-top:.2rem}.quote-choice__body{flex-direction:column;flex:1;gap:.75rem;min-width:0;min-height:100%;display:flex}.quote-choice__content{flex-direction:column;flex:auto;gap:.35rem;min-width:0;display:flex}.quote-choice__title{min-width:0;color:var(--color-text);overflow-wrap:anywhere;font-weight:600}.quote-choice__footer{flex-direction:column;flex-shrink:0;gap:.65rem;margin-top:auto;display:flex}.quote-choice__separator{background-color:#ffffff1f;width:100%;height:1px;display:block}.quote-choice__price{font-family:var(--font-family-display);color:var(--color-text);white-space:nowrap;font-weight:700}.quote-choice__description,.quote-choice__examples{color:var(--color-muted);font-size:var(--font-size-sm);line-height:1.45}.quote-field{flex-direction:column;gap:.45rem;display:flex}.quote-field__label{font-size:var(--font-size-sm);letter-spacing:.04em;text-transform:uppercase;color:var(--color-muted);justify-content:space-between;align-items:baseline;gap:.75rem;font-weight:600;display:flex}.quote-field__required{color:var(--color-accent)}.quote-field__optional{letter-spacing:.02em;text-transform:none;color:#fff6;font-size:.75rem;font-weight:500}.quote-field__hint{color:#ffffff73;font-size:var(--font-size-sm);margin:0}.quote-field__error{color:#ffb4a8;font-size:var(--font-size-sm);margin:0}.quote-field__warning{border-radius:var(--radius-sm);color:var(--color-text);font-size:var(--font-size-sm);border:1px solid #ffffff47;margin:0;padding:.75rem .9rem}.quote-included{gap:var(--space-xs);flex-direction:column;display:flex}.quote-included__list,.quote-help-list{flex-direction:column;gap:.4rem;margin:0;padding-left:1.1rem;display:flex}.quote-included__list li,.quote-help-list li{color:var(--color-muted);font-size:var(--font-size-sm)}.quote-notice{border:1px solid var(--color-accent);border-radius:var(--radius-sm);background-color:#fe240014;flex-direction:column;gap:.65rem;padding:.9rem 1rem;display:flex}.quote-notice p{color:var(--color-text);font-size:var(--font-size-sm);margin:0;line-height:1.5}.quote-photos__upload{gap:var(--space-sm);flex-direction:column;display:flex}.quote-photos__dropzone{padding:var(--space-md);border:1px dashed var(--color-border);border-radius:var(--radius-sm);cursor:pointer;transition:border-color var(--transition-base);background-color:#131210b8;flex-direction:column;gap:.35rem;display:flex}.quote-photos__dropzone:hover{border-color:var(--color-accent)}.quote-photos__dropzone-title{color:var(--color-text);font-weight:600}.quote-photos__dropzone-text{color:var(--color-muted);font-size:var(--font-size-sm)}.quote-photos__grid{gap:var(--space-sm);grid-template-columns:1fr;margin:0;padding:0;list-style:none;display:grid}.quote-photos__item{gap:var(--space-sm);border-radius:var(--radius-sm);border:1px solid #ffffff1f;grid-template-columns:5.5rem 1fr;align-items:center;padding:.75rem;display:grid}.quote-photos__preview{object-fit:cover;border-radius:calc(var(--radius-sm) - 4px);width:5.5rem;height:5.5rem}.quote-photos__meta{flex-direction:column;align-items:flex-start;gap:.35rem;min-width:0;display:flex}.quote-photos__name{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:var(--font-size-sm);margin:0;overflow:hidden}.quote-photos__remove{text-transform:none;letter-spacing:0;min-height:auto;padding:.35rem 0}.quote-summary{gap:var(--space-md);padding:var(--space-md);border-radius:var(--radius-card);background-color:#131210b8;border:1px solid #ffffff1f;flex-direction:column;display:flex}.quote-summary--mobile{display:block}.quote-summary__header{flex-direction:column;gap:.35rem;display:flex}.quote-summary__title{font-family:var(--font-family-display);margin:0;font-size:1.35rem;font-weight:700}.quote-summary__empty{color:var(--color-muted);font-size:var(--font-size-sm);margin:0}.quote-summary__sections{gap:var(--space-md);flex-direction:column;display:flex}.quote-summary__section{padding-bottom:var(--space-sm);border-bottom:1px solid #ffffff1f;flex-direction:column;gap:.65rem;display:flex}.quote-summary__section-title{font-size:var(--font-size-sm);letter-spacing:.06em;text-transform:uppercase;color:var(--color-accent);margin:0;font-weight:700}.quote-summary__lines{flex-direction:column;gap:.45rem;margin:0;padding:0;list-style:none;display:flex}.quote-summary__line,.quote-summary__subtotal{font-size:var(--font-size-sm);justify-content:space-between;gap:.75rem;margin:0;display:flex}.quote-summary__line{color:var(--color-muted)}.quote-summary__subtotal{color:var(--color-text);font-weight:600}.quote-summary__total{justify-content:space-between;align-items:baseline;gap:var(--space-sm);display:flex}.quote-summary__total-label{font-size:var(--font-size-sm);letter-spacing:.06em;text-transform:uppercase;margin:0;font-weight:700}.quote-summary__total-value{font-family:var(--font-family-display);color:var(--color-text);margin:0;font-size:clamp(1.5rem,3vw,2rem);font-weight:700}.quote-summary__notes{flex-direction:column;gap:.65rem;display:flex}.quote-summary__notes p{color:var(--color-muted);font-size:var(--font-size-sm);margin:0;line-height:1.5}.quote-submit{gap:var(--space-sm)}.quote-confirmation{align-items:flex-start;gap:var(--space-md);max-width:40rem;padding:var(--space-lg);border-radius:var(--radius-card);background-color:#1312108c;border:1px solid #ffffff1f;flex-direction:column;display:flex}.quote-confirmation__title{font-family:var(--font-family-display);margin:0;font-size:clamp(1.5rem,3vw,2rem)}.quote-confirmation__text,.quote-confirmation__note{color:var(--color-muted);font-size:var(--font-size-lg);margin:0;line-height:1.55}.quote-confirmation__note{font-size:var(--font-size-sm)}@media (min-width:40rem){.quote-choice-grid,.quote-photos__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.quote-subgrid{grid-template-columns:1fr}}@media (min-width:64rem){.quote-live-total{display:none}.quote-simulator__layout{gap:var(--space-2xl);grid-template-columns:minmax(0,1.45fr) minmax(18rem,.85fr);align-items:stretch}.quote-simulator__aside{align-self:stretch;height:100%;display:block}.quote-summary--mobile{display:none}.quote-summary--sticky{top:calc(var(--header-height) + var(--space-md));max-height:calc(100vh - var(--header-height) - var(--space-lg));overscroll-behavior:contain;scrollbar-width:none;-ms-overflow-style:none;position:sticky;overflow-y:auto}.quote-summary--sticky::-webkit-scrollbar{width:0;height:0;display:none}.quote-block{padding:var(--space-lg)}.quote-subgrid{gap:var(--space-sm);grid-template-columns:repeat(3,minmax(0,1fr))}}@media (prefers-reduced-motion:reduce){.quote-choice{transition:none}.quote-live-total__value.is-updating,.quote-summary__total-value.is-updating{animation:none}}
