      .spwpro-lookup { position: relative; text-align: center; }
      .spwpro-lookup h1 { margin-bottom: var(--space-30); }

      .spwval-strapline { margin-bottom: var(--space-45); margin-left: auto; margin-right: auto; width: 100%; max-width: 700px; }
      .spwval-form-container { position: relative; }
      .spwval-input-wrap { position: relative; max-width: 680px; margin-left: auto; margin-right: auto; }
      .spwval-postcode { width:100% !important; max-width:680px; padding: var(--space-20) !important; text-align: left; text-transform: uppercase; border: 2px solid #ddd !important; border-radius: var(--space-15) !important; line-height: 1; background: var(--spw-white) !important; }
      .spwval-postcode:focus { outline: none; border-color: inherit;}
      .spwval-postcode::placeholder { color: #bbb; text-transform: capitalize; }

      .spwpro-manual-toggle {
        margin-top: var(--space-10);
        text-align: center;
      }

      .spwpro-manual-link {
        border: 0;
        background: transparent;
        color: var(--spw-primary);
        text-decoration: underline;
        cursor: pointer;
        font-size: var(--text-14);
        padding: 0;
      }
		
	  .spwpro-postcode-message {
		  max-width: 680px;
		  margin: var(--space-10) auto 0 auto;
		  text-align: center;
		  padding: var(--space-10) var(--space-15);
		  border: 1px solid #e46d52;
		  border-radius: 10px;
		  background: rgba(228, 109, 82, 0.08);
		}

		.spwpro-postcode-message p {
		  margin: 0 0 var(--space-10) 0;
		  font-weight: var(--spwval-font-weight-bold);
		  color: #444;
		}

		.spwpro-postcode-message[hidden] {
		  display: none;
		}
	
      .spwval-dropdown[hidden] { display: none; }
      .spwval-dropdown {
        position: absolute; left: 0; right: 0; top: calc(100% - 50px);
        padding-top: 10px;
        max-width: 680px; margin-left: auto; margin-right: auto;
        background: var(--spw-white);
        border: 2px solid #ddd;
        border-top: 0;
        border-top-left-radius: 0;
        border-top-right-radius: 0;
        border-bottom-left-radius: var(--space-15);
        border-bottom-right-radius: var(--space-15);
        z-index: 1;
      }
		
		.spwval-results li[aria-selected="true"] {
		  background: var(--spw-ui-grey);
		  color: var(--spw-primary);
		}

      .spwpro-manual-wrap {
        max-width: 680px;
        margin: var(--space-20) auto 0 auto;
        text-align: left;
      }

      .spwpro-manual-buttons {
        margin-top: var(--space-10);
      }

      .spwpro-manual-buttons .spwval-btn {
        flex: 1 1 0;
        min-width: 0;
      }


      .spwval-details-wrap[hidden] { display: none; }
      .spwval-details-wrap {
        max-width: 1060px; margin: 0 auto;
        border: 2px solid #ddd; border-radius: var(--space-15);
        padding: var(--space-30);
        text-align: left;
      }
      .spwval-details-intro { margin: 0; color: #666; }
      .spwval-selected-address { font-weight: var(--spwval-font-weight-bold); font-size: 1.1em; margin: 0 0 var(--space-20) 0; }
      .spwval-fieldset { border: 0; padding: 0; margin: 0 0 var(--space-20) 0; }
      .spwval-label { display: block; font-weight: var(--spwval-font-weight-bold); margin-bottom: 0.5rem; }
      .spwval-label--primary { color: var(--spw-primary); }

      /* Inline field error messages */
      .spwpro-field-error {
        display: block;
        color: #e46d52;
        font-size: var(--text-14);
        margin-top: -0.6rem;
        margin-bottom: 0.8rem;
      }
      .spwpro-field-error[hidden] { display: none; }

      /* Top-of-form error (server/network errors) */
      .spwpro-form-error {
        background: rgba(228, 109, 82, 0.08);
        border: 1px solid #e46d52;
        border-radius: 8px;
        color: #c0392b;
        font-weight: var(--spwval-font-weight-bold);
        padding: var(--space-15) var(--space-20);
        margin-bottom: var(--space-20);
      }
      .spwpro-form-error[hidden] { display: none; }

      /* Radio buttons – match Instant Valuation style */
      .spwval-radio-group {
        display: flex;
        flex-wrap: wrap;
        gap: 1rem;
      }
      .spwval-radio-group label {
        display: flex;
        align-items: center;
        gap: 0.8rem;
        cursor: pointer;
        color: var(--spw-primary);
      }
      .spwval-radio-group input[type="radio"] {
        opacity: 0;
        position: fixed;
        width: 0;
      }
      .spwval-radio-group label::before {
        content: '';
        display: block;
        width: 24px;
        height: 24px;
        border: 2px solid #ccc;
        border-radius: 50%;
        transition: all 0.2s ease-in-out;
      }
      .spwval-radio-group label:has(> input[type="radio"]:checked)::before {
        border-color: var(--spw-primary);
        background: #fff;
        background-image: radial-gradient(circle, var(--spw-primary) 40%, transparent 45%);
      }

      .spwval-checkbox-wrap { display: flex; flex-wrap: wrap; gap: 1rem; margin: var(--space-20) 0; }
      .spwval-checkbox-wrap label { display: flex; align-items: center; gap: 0.8rem; cursor: pointer; }
      .spwval-checkbox-wrap input[type="checkbox"] {
        opacity: 0;
        position: fixed;
        width: 0;
      }
      .spwval-checkbox-wrap label::before {
        content: '';
        display: inline-block;
        width: 24px;
        height: 24px;
        border: 2px solid #ccc;
        border-radius: 4px;
        transition: all 0.2s ease-in-out;
      }
      .spwval-checkbox-wrap label:has(> input[type="checkbox"]:checked)::before {
        border-color: var(--spw-primary);
        background-color: var(--spw-primary);
        background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3e%3c/svg%3e");
        background-position: center;
        background-repeat: no-repeat;
        background-size: 50%;
      }

      .spwval-text-input {
        width: 100%;
        padding: 0.8rem; margin-bottom: 1rem;
        border: 1px solid #ccc; border-radius: 8px;
        font-size: var(--text-18);
      }
      .spwval-textarea {
        resize: vertical;
        min-height: 100px;
        font-family: inherit;
      }
      .spwval-button-group { display: flex; justify-content: space-between; gap: 1rem; }
      .spwval-btn {
        flex-grow: 1;
        padding: 1.6rem 2rem;
        border-radius: 8px;
        border: 1px solid transparent;
        font-weight: var(--spwval-font-weight-bold);
        cursor: pointer;
        transition: background-color 0.2s;
      }
      .spwval-btn-primary { background-color: var(--spw-primary); color: var(--spw-white); transition: transform 0.3s ease-in-out; }
      .spwval-btn-primary:hover { transform: scale(1.02); background-color: var(--spw-primary); }
      .spwval-btn-secondary { background-color: #f0f0f0; color: #333; border-color: #ccc; transition: transform 0.3s ease-in-out; }
      .spwval-btn-secondary:hover { transform: scale(1.02); background-color: #f0f0f0; }
      .spwval-btn-inline { flex-grow: 0; padding-left: 1.4rem; padding-right: 1.4rem; }

      .spwpro-no-datetime-msg {
        margin: 0;
        padding: var(--space-15) var(--space-20);
        background: var(--spw-ui-grey);
        border-radius: 8px;
        color: #444;
        font-style: italic;
      }

      .spwval-input-error {
        border-color: #e46d52 !important;
        font-weight: var(--spwval-font-weight-bold);
      }

      .spwval-results-wrap {
        max-width: 1060px; margin: 0 auto;
        border: 2px solid #ddd; border-radius: var(--space-15);
        padding: var(--space-45);
        background: var(--spw-ui-grey);
      }
      .spwval-results-wrap h2 { margin-top: 0; margin-bottom: var(--space-30); text-align: center; }

      .spwpro-confirmation-title {
        margin: 0 0 var(--space-20);
        text-align: center;
      }
      .spwpro-confirmation-list {
        margin: 0;
      }
      .spwpro-confirmation-list dt {
        font-weight: var(--spwval-font-weight-bold);
        margin-top: var(--space-15);
      }
      .spwpro-confirmation-list dt:first-child {
        margin-top: 0;
      }
      .spwpro-confirmation-list dd {
        margin: 0;
      }

      .spwval-results-buttons {
        margin-top: var(--space-45);
        justify-content: center;
      }
      .spwval-results-buttons .spwval-btn {
        flex-grow: 0;
        min-width: 200px;
      }

      .spwval-close-btn {
        position: absolute; top: 50%; right: var(--space-15);
        transform: translateY(-50%);
        background: transparent; border: 0; cursor: pointer;
        font-size: 28px; line-height: 1; color: #999; padding: 0;
      }
      .spwval-results { list-style:none; margin:0; padding:0; max-height:200px; overflow:auto; }
      .spwval-result-btn {
        display:block; width:100%; text-align:left; background:transparent; border:0;
        padding:5px var(--space-20); font-size:var(--text-18); color:var(--spw-black); cursor:pointer;
      }
      .spwval-result-btn:hover, .spwval-result-btn:focus { background:var(--spw-ui-grey); text-decoration:underline; outline:none; color:var(--spw-primary); }

      .spwval_stages { margin-bottom: var(--space-45); }
      .spwval_stages__stage1, .spwval_stages__stage2, .spwval_stages__stage3 {
        background: var(--spw-ui-grey); color: var(--spw-primary);
        line-height: 1em; font-size: var(--text-25); border: 1px solid var(--spw-primary); border-radius: 100px; width: 2em; height: 2em;
        display: inline-block; padding-top: calc(1.5em - var(--text-25)); margin: 0 10px;
      }
      .spwval_stages span.active { background: var(--spw-primary); color: var(--spw-white); }

      .spwval-postcode.breathe {
        box-shadow: 0 0 0 0 rgba(33,115,255,0.0);
        animation: breathe 2.8s ease-in-out infinite;
      }
      .spwval-postcode.breathe:focus {
        animation: none;
        box-shadow: none;
      }

      /* Date + time grid */
      .spwpro-date-picker, .spwpro-time-picker {
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
        gap: var(--space-10);
        margin-top: var(--space-10);
      }

      .spwpro-date-pill, .spwpro-time-pill {
        border: 0;
        border-radius: 5px;
        width: 100%;
        padding: 8px 12px;
        background: var(--btn-background, var(--spw-primary));
        color: var(--btn-text, var(--spw-secondary));
        cursor: pointer;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
      }

      .spwpro-date-pill__dow {
        font-size: 14px;
      }
      .spwpro-date-pill__dom {
        font-size: 16px;
        font-weight: var(--spwval-font-weight-bold);
      }

      .spwpro-date-pill.is-selected,
      .spwpro-time-pill.is-selected {
        background: var(--btn-background, var(--spw-warning));
        color: var(--btn-text, var(--spw-secondary));
        outline: 2px solid var(--btn-text, var(--spw-secondary));
        outline-offset: 2px;
      }

      .spwpro-date-pill.is-disabled {
        background: #ccc;
        color: #aaa;
        cursor: not-allowed;
      }

      .spwpro-date-picker.spwval-input-error,
      .spwpro-time-picker.spwval-input-error {
        outline: 2px solid #e46d52;
        border-radius: 16px;
        padding: 4px;
      }

      /* Summaries + change links */
      .spwpro-date-summary,
      .spwpro-time-summary {
        margin-top: var(--space-10);
        font-size: var(--text-18);
        color: #444;
      }

      .spwpro-change-date {
        margin-left: var(--space-10);
        border: 0;
        background: transparent;
        color: var(--spw-primary);
        text-decoration: underline;
        cursor: pointer;
        font-size: var(--text-14);
        padding: 0;
      }

      #spwpro_date_summary_text, #spwpro_time_summary_text {
        font-weight: var(--spwval-font-weight-bold);
      }

      .spwpro-date-summary[hidden],
      .spwpro-time-summary[hidden],
      .spwpro-time-picker[hidden],
      .spwpro-date-picker[hidden] {
        display: none;
      }

      @keyframes breathe {
        0%, 100% { box-shadow: 0 0 0 0 rgba(33,115,255,0.0); }
        50%      { box-shadow: 0 0 0 6px rgba(33,115,255,0.18); }
      }

      @media (prefers-reduced-motion: reduce) {
        .field.breathe { animation: none; }
      }

      @media (max-width: 768px) {
        .spwval-results-buttons { flex-direction: column; }
        .spwval-results-buttons .spwval-btn { min-width: unset; }
        .spwpro-manual-buttons { flex-direction: column; }
        .spwpro-manual-buttons .spwval-btn { width: 100%; }
      }
