.builder-shell { max-width: 1180px; overflow: visible; }
.builder-progress { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; min-height: 34px; width: min(680px,100%); margin: 42px auto 0; color: var(--sales-muted); }
.builder-progress__step { display: flex; align-items: baseline; gap: 8px; min-width: 0; min-height: 34px; padding-top: 12px; border-top: 1px solid rgba(80,98,87,.24); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
.builder-progress__step::before { display: inline-block; flex: none; color: var(--sales-accent-deep); font: 400 16px/1.55 var(--sales-serif); letter-spacing: 0; content: attr(data-step-number); }
.builder-progress__step i { display: none; }
.builder-progress__step.is-current { color: var(--sales-ink); }
.builder-progress__step.is-current { border-top-color: var(--sales-accent-deep); }
.builder-main { position: relative; isolation: isolate; width: min(100%,1040px); margin: 54px auto 0; animation: sales-rise .4s ease both; }
.builder-main--form::before { position: absolute; z-index: 0; top: 150px; right: -2%; bottom: 0; width: 62%; background: url("/static/gatherstead_art/sales-motifs/floral-glass-stem.png") right bottom / auto 100% no-repeat; opacity: .9; content: ""; pointer-events: none; }
.builder-main > * { position: relative; z-index: 1; }
.builder-heading { margin-bottom: 28px; }
.builder-heading h1,.builder-review-heading h1,.builder-creating h1 { margin: 0 0 14px; color: var(--sales-ink); font: 400 clamp(42px,6vw,66px)/.98 var(--sales-serif); letter-spacing: -.055em; }
.builder-heading .sales-eyebrow,.builder-review-heading .sales-eyebrow,.builder-creating .sales-eyebrow { margin-bottom: 14px; }
.builder-heading .sales-lede,.builder-review-heading .sales-lede,.builder-creating .sales-lede { max-width: 590px; color: var(--sales-muted); font-size: 16px; line-height: 1.6; }
.builder-content { padding: clamp(22px,4vw,36px); }
.builder-content.plan-card.liquidglass-card { transition: none; }
.builder-content.plan-card.liquidglass-card:hover { transform: none; background: transparent; box-shadow: inset 2px 2px 0 -2px rgba(255, 255, 255, .74), inset 0 0 3px 1px rgba(255, 255, 255, .50), inset -1px -1px 1px rgba(45, 48, 44, .10); }
.builder-form { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 22px 18px; }
.builder-field { display: grid; align-content: start; gap: 7px; color: var(--sales-ink); font-size: 12px; font-weight: 600; }
.builder-field-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.builder-field--wide { grid-column: 1/-1; }
.builder-field input,.builder-field select,.builder-field textarea { width: 100%; min-width: 0; min-height: 46px; padding: 11px 13px; border: 1px solid rgba(45,48,44,.2); border-radius: 4px; color: var(--sales-ink); background: rgba(255,254,250,.9); font: 400 14px/1.45 var(--sales-sans); }
.builder-field textarea { min-height: 108px; resize: none; }
.builder-field input:focus,.builder-field select:focus,.builder-field textarea:focus { border-color: var(--sales-accent-deep); outline: 2px solid rgba(51,75,61,.22); outline-offset: 1px; }
.builder-field small,.builder-small-note,.builder-palettes>p,.builder-photo-intro>p { color: var(--sales-muted); font-size: 12px; font-weight: 400; line-height: 1.55; }
.builder-required,.builder-optional { margin-left: 5px; color: var(--sales-muted); font-size: 9px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; }
.builder-address,.builder-choice,.builder-palettes { display: grid; grid-column: 1/-1; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; min-width: 0; margin: 0; padding: 0; border: 0; }
.builder-address legend,.builder-choice legend,.builder-palettes legend { grid-column: 1/-1; margin-bottom: 0; color: var(--sales-ink); font-size: 12px; font-weight: 650; }
.builder-address .builder-field--wide { grid-column: 1/-1; }
.builder-choice-card { display: flex; min-height: 76px; align-items: center; gap: 12px; padding: 14px; border: 1px solid rgba(45,48,44,.17); border-radius: 4px; background: rgba(255,254,250,.65); cursor: pointer; }
.builder-choice-card:has(input:checked) { border-color: var(--sales-accent-deep); background: rgba(220,225,214,.42); }
.builder-choice-card input,.builder-palette input { accent-color: var(--sales-accent-deep); }
.builder-choice-card span { display: grid; gap: 3px; }
.builder-choice-card strong { font-size: 12px; font-weight: 600; }
.builder-choice-card small { color: var(--sales-muted); font-size: 11px; }
.builder-upload-row { display: flex; grid-column: 1/-1; align-items: center; gap: 18px; width: min(100%,620px); min-height: 120px; padding: 16px 20px; border: 1px solid rgba(45,48,44,.15); background: rgba(255,254,250,.68); }
.builder-upload-row[hidden] { display: none; }
.builder-text-button,.builder-upload-list button { min-height: 32px; padding: 4px 0; border: 0; color: var(--sales-accent-deep); background: transparent; font-size: 12px; font-weight: 600; text-decoration: underline; text-underline-offset: 4px; cursor: pointer; }
.builder-logo-preview { display:grid; place-items:center; overflow:hidden; width:76px; height:76px; flex:0 0 76px; border:1px solid rgba(45,48,44,.15); border-radius:50%; background:rgba(255,254,250,.9); color:var(--sales-accent-deep); font-size:25px; }
.builder-logo-preview img { display:block; width:100%; height:100%; object-fit:cover; }
.builder-logo-content { display:grid; justify-items:start; align-content:center; gap:3px; min-width:0; }
.builder-logo-content strong { color:var(--sales-ink); font-size:13px; font-weight:650; }
.builder-logo-content small,.builder-logo-filename { overflow:hidden; max-width:100%; color:var(--sales-muted); font-size:11px; text-overflow:ellipsis; white-space:nowrap; }
.builder-logo-input { position:absolute; width:1px; height:1px; overflow:hidden; opacity:0; pointer-events:none; }
.builder-file-chip { display:contents; }
.builder-remove-logo { color:var(--sales-muted); }
.builder-upload-list img { width: 46px; height: 46px; flex: 0 0 auto; border-radius: 50%; object-fit: cover; background: var(--sales-paper); }
.logo-crop-dialog { width:min(720px,calc(100vw - 32px)); max-height:calc(100dvh - 28px); overflow:auto; border:0; padding:0; background:var(--sales-paper); color:var(--sales-ink); box-shadow:0 23px 80px rgba(0,0,0,.24); }
.logo-crop-dialog::backdrop { background:rgba(14,31,27,.61); backdrop-filter:blur(4px); }
.logo-crop-inner { position:relative; padding:30px; }
.logo-crop-inner>.eyebrow { margin:0 0 8px; color:var(--sales-accent-deep); font-size:10px; font-weight:850; letter-spacing:.15em; text-transform:uppercase; }
.logo-crop-inner h2 { margin:5px 0 8px; font:400 34px/.97 var(--sales-serif); letter-spacing:-.05em; }
.logo-crop-inner>p:not(.eyebrow) { margin:0 0 23px; color:var(--sales-muted); font-size:13px; }
.logo-crop-close { position:absolute; top:14px; right:14px; display:grid; place-items:center; width:35px; height:35px; border:1px solid rgba(45,48,44,.16); border-radius:50%; background:rgba(255,254,250,.9); color:var(--sales-ink); font-size:21px; transition:color .16s ease,background-color .16s ease,border-color .16s ease,transform .16s ease; }
.logo-crop-close:hover,.logo-crop-close:focus-visible { border-color:color-mix(in srgb,var(--sales-accent-deep) 28%,rgba(45,48,44,.16)); background:color-mix(in srgb,var(--sales-accent-deep) 7%,var(--sales-paper)); color:var(--sales-accent-deep); transform:scale(1.03); outline:0; }
@media (prefers-reduced-motion:reduce) { .logo-crop-close { transition:none; } .logo-crop-close:hover,.logo-crop-close:focus-visible { transform:none; } }
.logo-crop-preview-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:24px 0; }
.logo-crop-preview-grid>div { display:grid; gap:8px; min-width:0; }
.logo-crop-preview-label { color:var(--sales-muted); font-size:11px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.logo-crop-viewport { position:relative; width:min(320px,100%); aspect-ratio:1; margin:0 auto 20px; overflow:hidden; border:2px solid var(--sales-accent-deep); border-radius:50%; background:var(--sales-paper); touch-action:none; cursor:grab; }
.logo-crop-preview-grid .logo-crop-viewport { width:100%; margin:0; }
.logo-crop-viewport.is-dragging { cursor:grabbing; }
.logo-crop-viewport img { position:absolute; top:50%; left:50%; max-width:none; user-select:none; pointer-events:none; transform:translate(-50%,-50%); }
.logo-crop-processed { background:repeating-conic-gradient(#eef0e9 0 25%,#fffdf8 0 50%) 50%/16px 16px; }
.logo-crop-processed img { width:100%; height:100%; object-fit:contain; }
.logo-crop-zoom { display:grid; gap:6px; color:var(--sales-muted); font-size:12px; font-weight:700; }
.logo-crop-zoom input { width:100%; }
.logo-background-tools { display:grid; gap:12px; margin-top:16px; padding-top:16px; border-top:1px solid rgba(45,48,44,.15); }
.logo-background-option { display:flex; align-items:center; gap:8px; font-size:12px; }
.logo-background-option input { width:auto; min-height:0; }
.logo-color-picker-row { display:flex; align-items:center; gap:12px; }
.logo-color-picker-row .button { margin:0; }
.logo-background-tolerance { display:grid; grid-template-columns:max-content max-content 1fr; align-items:center; gap:8px; font-size:11px; }
.logo-background-tolerance input { width:100%; }
.logo-background-help { margin:6px 0 0!important; color:var(--sales-muted); font-size:11px!important; }
.logo-crop-actions { display:flex; justify-content:flex-end; align-items:center; gap:12px; margin-top:24px; padding-top:20px; border-top:1px solid rgba(45,48,44,.15); }
.logo-crop-actions .button { min-height:40px; padding:9px 16px; border:1px solid rgba(45,48,44,.18); border-radius:999px; background:rgba(255,254,250,.9); color:var(--sales-ink); font-size:12px; font-weight:700; cursor:pointer; }
.logo-crop-actions .button-primary { border-color:var(--sales-accent-deep); background:var(--sales-accent-deep); color:#fff; }
.logo-crop-actions .button-secondary { color:var(--sales-muted); }
.logo-crop-actions .button:hover { transform:translateY(-1px); }
.logo-color-picker-row .button-text { padding:3px 0; border:0; border-bottom:1px solid currentColor; background:transparent; color:var(--sales-accent-deep); font-size:12px; text-decoration:none; cursor:pointer; }
.logo-color-picker-row .button.button-text { min-height:24px; margin:0; padding:3px 0; border:0; border-bottom:1px solid transparent; border-radius:0; background:transparent; color:var(--sales-accent-deep); font-weight:700; text-decoration:none; box-shadow:none; }
.logo-color-picker-row .button.button-text:hover,.logo-color-picker-row .button.button-text:focus-visible { border-color:var(--sales-accent-deep); background:transparent; color:var(--sales-accent-deep); text-decoration:underline; text-underline-offset:4px; transform:none; }
.logo-color-picker-row .button.button-text.is-picking { border-color:var(--sales-accent-deep); background:transparent; color:var(--sales-accent-deep); font-weight:850; }
.logo-crop-viewport.is-picking-color { cursor:crosshair; border-color:var(--sales-accent-deep); box-shadow:0 0 0 3px color-mix(in srgb,var(--sales-accent-deep) 18%,transparent); }
.logo-crop-actions .button:disabled { opacity:.45; cursor:not-allowed; }
.builder-palettes { display: block; }
.builder-palettes>p { margin: 6px 0 13px; }
.builder-palette-options { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; }
.builder-palette { display: grid; justify-items: start; gap: 8px; padding: 10px; border: 1px solid transparent; border-radius: 4px; color: var(--sales-ink); font-size: 11px; cursor: pointer; }
.builder-palette.is-selected { border-color: rgba(51,75,61,.34); background: rgba(220,225,214,.34); }
.builder-palette input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.builder-palette:focus-within { outline: 2px solid var(--sales-accent-deep); outline-offset: 2px; }
.builder-swatch-pair { display: flex; gap: 5px; }
.builder-swatch-pair i { width: 25px; height: 25px; border: 1px solid rgba(0,0,0,.07); border-radius: 50%; background: var(--swatch); }
.builder-photo-intro { display: grid; grid-column: 1/-1; grid-template-columns: 1fr auto; align-items: center; gap: 18px; }
.builder-photo-intro p { margin: 0; }
.builder-dropzone { display: grid; grid-column: 1/-1; justify-items: center; gap: 4px; padding: 26px; border: 1px dashed rgba(51,75,61,.4); color: var(--sales-ink); background: rgba(255,254,250,.48); text-align: center; cursor: pointer; }
.builder-dropzone:hover { border-color: var(--sales-accent-deep); background: rgba(220,225,214,.28); }
.builder-dropzone input { max-width: 100%; font-size: 12px; }
.builder-dropzone strong { font-size: 13px; font-weight: 600; }
.builder-dropzone small { color: var(--sales-muted); font-size: 11px; }
.builder-upload-symbol,.builder-ornament { color: var(--sales-accent-deep); font: 300 28px/1 var(--sales-serif); }
.builder-upload-list { display: grid; grid-column: 1/-1; gap: 8px; margin: 0; padding: 0; list-style: none; }
.builder-upload-list li { display: flex; min-width: 0; align-items: center; gap: 12px; padding: 10px; border: 1px solid rgba(45,48,44,.12); background: rgba(255,254,250,.56); }
.builder-upload-list li>span { display: grid; min-width: 0; flex: 1; gap: 2px; }
.builder-upload-list strong { overflow: hidden; font-size: 12px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.builder-upload-list small { color: var(--sales-muted); font-size: 11px; }
.builder-service { grid-template-columns: repeat(2,minmax(0,1fr)); }
.builder-form-actions { display: flex; grid-column: 1/-1; align-items: center; justify-content: space-between; gap: 16px; margin-top: 8px; padding-top: 22px; border-top: 1px solid rgba(45,48,44,.12); }
.builder-back-link,.builder-text-link { color: var(--sales-accent-deep); font-size: 12px; font-weight: 600; text-decoration: underline; text-underline-offset: 4px; }
.builder-form-actions .sales-button,.builder-review-actions .sales-button { min-width: 165px; }
.builder-error { margin: 0 0 16px; }
.builder-field input[aria-invalid="true"],.builder-field select[aria-invalid="true"],.builder-field textarea[aria-invalid="true"] { border-color: #a94e3b; }
.builder-field-error { color: #9a3f31 !important; font-size: 11px !important; font-weight: 500 !important; }
.builder-review-heading { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 26px; }
.builder-review-heading .sales-lede { margin: 0; }
.builder-preview-shell { overflow: hidden; border: 1px solid rgba(45,48,44,.2); background: #fffefa; box-shadow: 0 14px 34px rgba(37,46,37,.09); }
.builder-preview-chrome { display: flex; height: 34px; align-items: center; gap: 6px; padding: 0 12px; border-bottom: 1px solid rgba(45,48,44,.12); }
.builder-preview-chrome>span { width: 6px; height: 6px; border-radius: 50%; background: rgba(80,98,87,.38); }
.builder-preview-chrome small { margin-inline: auto; color: var(--sales-muted); font-size: 8px; letter-spacing: .13em; text-transform: uppercase; }
.builder-preview-shell iframe { display: block; width: 100%; height: min(72vh,780px); min-height: 440px; border: 0; background: var(--sales-paper); }
.builder-review-actions { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-top: 18px; }
.builder-creating { display: grid; justify-items: center; padding: 70px 24px; text-align: center; }
.builder-creating .builder-ornament { margin-bottom: 20px; font-size: 38px; animation: builder-turn 3s ease-in-out infinite; }
.builder-creating .sales-lede { max-width: 460px; margin: 0 auto 22px; }
.builder-creating .builder-small-note { margin-top: 14px; }
.builder-creating form[data-builder-create] { margin-top: 8px; }
.builder-shell .sales-footer { margin-top: 54px; }
.builder-shell button:focus-visible,.builder-shell a:focus-visible,.builder-shell input:focus-visible,.builder-shell select:focus-visible,.builder-shell textarea:focus-visible { outline: 2px solid var(--sales-accent-deep); outline-offset: 3px; }
.builder-shell [aria-busy="true"] .sales-button { position: relative; }
@keyframes builder-turn { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(24deg) } }
@media (max-width:760px) {
  .builder-shell { width: min(100% - 32px,620px); padding-top: 18px; }
  .builder-progress { gap: 6px; margin-top: 28px; min-height: 49px; }
  .builder-progress__step { min-height: 49px; gap: 4px; font-size: 7px; letter-spacing: .06em; white-space: normal; }
  .builder-main { margin-top: 42px; }
  .builder-main--form::before { top: 132px; right: 0; width: 74%; background-size: auto 76%; opacity: .82; }
  .builder-content { padding: 20px 16px; }
  .builder-heading h1,.builder-review-heading h1,.builder-creating h1 { font-size: clamp(40px,12vw,58px); }
  .builder-form { grid-template-columns: minmax(0,1fr); gap: 18px; }
  .builder-address,.builder-choice,.builder-palettes,.builder-service { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .builder-photo-intro { grid-template-columns: 1fr; }
  .builder-palette-options { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .builder-review-heading { display: grid; align-items: start; }
  .builder-preview-shell iframe { height: 68vh; min-height: 360px; }
}
@media (max-width:390px) {
  .builder-progress__step { gap: 3px; font-size: 6px; letter-spacing: .02em; }
  .builder-content { padding-inline: 13px; }
  .builder-main--form::before { top: 118px; right: 0; width: 80%; background-size: auto 72%; opacity: .78; }
  .builder-address,.builder-choice,.builder-service { grid-template-columns: minmax(0,1fr); }
  .builder-address legend,.builder-choice legend,.builder-palettes legend { grid-column: 1; }
  .builder-address .builder-field--wide { grid-column: 1; }
  .builder-review-actions { align-items: stretch; flex-direction: column; }
  .builder-review-actions form,.builder-review-actions .sales-button { width: 100%; }
}
@media (prefers-reduced-motion:reduce) { .builder-main,.builder-creating .builder-ornament { animation: none; } }
