/* propcert booking styles */

    :root {
        --primary: #0096c7;
        --primary-dark: #007ba3;
        --primary-light: #33abd2;
        --background: #ffffff;
        --foreground: #1a1a1a;
        --muted: #f5f5f5;
        --muted-foreground: #737373;
        --border: #e5e5e5;
        --badge-red: #c41e3a;
        --badge-red-dark: #8b1528;
        --service-bg: #2aacba;
        --service-bg-hover: #239aa7;
        --success: #22c55e;
    }

    * {
        margin: 0;
        padding: 0;
        box-sizing: border-box;
    }

    body {
        font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans",
            "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
        background-color: var(--background);
        color: var(--foreground);
        line-height: 1.5;
    }

    #propcert-app{
        padding-bottom: 40px;
    }

    .container {
        max-width: 1000px;
        margin: 0 auto;
        padding: 0 16px;
    }

    /* Step Indicator */
    .step-indicator {
        display: flex;
        justify-content: center;
        align-items: center;
        padding: 24px 16px;
        background: var(--muted);
        border-bottom: 1px solid var(--border);
    }

    .step-indicator-inner {
        display: flex;
        align-items: center;
        gap: 0;
    }

    .step {
        display: flex;
        align-items: center;
        gap: 8px;
    }

    .step-circle {
        width: 32px;
        height: 32px;
        border-radius: 50%;
        display: flex;
        align-items: center;
        justify-content: center;
        font-weight: 600;
        font-size: 14px;
        border: 2px solid var(--border);
        background: var(--background);
        color: var(--muted-foreground);
    }

    .step-circle.active {
        background: var(--primary);
        border-color: var(--primary);
        color: white;
    }

    .step-circle.completed {
        background: var(--success);
        border-color: var(--success);
        color: white;
    }

    .step-label {
        font-size: 14px;
        color: var(--muted-foreground);
        font-weight: 500;
    }

    .step-label.active {
        color: var(--primary);
        font-weight: 600;
    }

    .step-connector {
        width: 60px;
        height: 2px;
        background: var(--border);
        margin: 0 12px;
    }

    .step-connector.completed {
        background: var(--success);
    }

    /* Help Banner */
    .help-banner {
        display: flex;
        align-items: center;
        gap: 8px;
        padding: 16px 0;
        border-bottom: 1px solid var(--border);
        margin-bottom: 24px;
        font-size: 14px;
        color: var(--muted-foreground);
    }

    .help-banner a {
        color: var(--primary);
        font-weight: 700;
        text-decoration: none;
        display: flex;
        align-items: center;
        gap: 4px;
    }

    .help-banner a:hover {
        text-decoration: underline;
    }
    /* Property Type Selector */
    .property-type-section {
        margin-bottom: 32px;
    }

    .property-type-section h2 {
        font-size: 24px;
        font-weight: 600;
        color: var(--primary);
        margin-bottom: 16px;
    }

    .property-type-buttons {
        display: flex;
        gap: 12px;
        flex-wrap: wrap;
    }

    .property-type-btn {
        padding: 12px 24px;
        border: 2px solid var(--border);
        border-radius: 8px;
        background: var(--background);
        cursor: pointer;
        font-family: inherit;
        font-size: 14px;
        font-weight: 500;
        color: var(--foreground);
        transition: all 0.2s;
    }

    .property-type-btn:hover {
        border-color: var(--primary);
    }

    .property-type-btn.selected {
        background: var(--primary);
        border-color: var(--primary);
        color: white;
    }

    .services-section {
        padding-top: 0px;
    }

    .services-section h3 {
        font-size: 30px;
        font-weight: 600;
        color: var(--foreground);
        margin-bottom: 24px;
    }

    .services-grid {
        display: grid;
        grid-template-columns: 1fr;
        gap: 32px;
    }

    @media (min-width: 768px) {
        .services-grid {
            grid-template-columns: 1fr 1fr;
        }
    }

    .service-category {
        margin-bottom: 24px;
    }

    .service-category h4 {
        font-size: 24px;
        font-weight: 500;
        color: var(--foreground);
        text-transform: uppercase;
        letter-spacing: 0.5px;
        margin-bottom: 12px;
    }

    /* Service Item */
    .service-item {
        margin-bottom: 16px;
    }

    .service-checkbox {
        display: flex;
        align-items: center;
        gap: 12px;
        padding: 12px 16px;
        background: var(--background);
        border: 1px solid #0095c7;
        border-radius: 6px;
        cursor: pointer;
        transition: all 0.2s;
        position: relative;
        overflow: visible;
    }

    .service-checkbox:hover {
        border-color: #0095c7;
        background: #ffffff;
    }

    .service-checkbox.selected {
        background: #0095c7;
        border-color: #0095c7;
    }

    .checkbox-box {
        width: 20px;
        height: 20px;
        border: 1px solid #0095c7;
        border-radius: 4px;
        display: flex;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
        transition: all 0.2s;
    }

    .service-checkbox.selected .checkbox-box {
        background: white;
        border-color: white;
    }

    .checkbox-box svg {
        width: 12px;
        height: 12px;
        color: #0095c7;
        display: none;
    }

    .service-checkbox.selected .checkbox-box svg {
        display: block;
    }

    .service-label {
        flex: 1;
        font-size: 16px;
        font-weight: 500;
        color: var(--foreground);
        padding-right: 60px;
    }

    .service-checkbox.selected .service-label {
        color: white;
    }

    .save-badge {
        position: absolute;
        right: 0;
        top: 50%;
        transform: translateY(-50%);
        background: var(--badge-red);
        color: white;
        font-size: 11px;
        font-weight: 700;
        font-style: italic;
        padding: 6px 8px 6px 12px;
        clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%, 10% 50%);
        box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
    }

    .save-badge::before {
        content: "";
        position: absolute;
        top: -4px;
        right: 0;
        border-style: solid;
        border-width: 0 0 4px 8px;
        border-color: transparent transparent var(--badge-red-dark) transparent;
    }

    /* Service Options Section (Step 2) - Propcert Style */
    .service-options-section {
        margin-bottom: 32px;
        padding-bottom: 32px;
        border-bottom: 1px solid var(--border);
    }

    .service-options-section h3 {
        font-size: 24px;
        font-weight: 600;
        color: var(--primary);
        margin-bottom: 24px;
    }

    .option-question {
        margin-bottom: 24px;
        padding-bottom: 24px;
        border-bottom: 1px solid var(--border);
    }

    .option-question:last-child {
        border-bottom: none;
        margin-bottom: 20px;
        padding-bottom: 0;
    }

    .option-question-label {
        font-size: 18px;
        font-weight: 400;
        color: var(--foreground);
        margin-bottom: 4px;
        margin-right: 35px;
    }

    .option-question-label .required {
        color: var(--badge-red);
    }

    .option-question-note {
        font-size: 13px;
        font-style: italic;
        color: var(--muted-foreground);
        margin-bottom: 12px;
    }

    .radio-grid {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 8px 24px;
    }

    @media (min-width: 500px) {
        .radio-grid.cols-5 {
            grid-template-columns: repeat(5, auto);
            justify-content: start;
            gap: 16px 32px;
        }

        .radio-grid.cols-3 {
            grid-template-columns: repeat(3, auto);
            justify-content: start;
            gap: 16px 32px;
        }

        .radio-grid.cols-6 {
            grid-template-columns: repeat(6, auto);
            justify-content: start;
            gap: 16px 24px;
        }
    }

    .radio-option-propcert {
        display: flex;
        align-items: center;
        gap: 8px;
        cursor: pointer;
        font-size: 18px;
        color: var(--foreground);
        padding: 4px 0;
    }

    .radio-option-propcert:hover .radio-circle-propcert {
        border-color: var(--primary);
    }

    .radio-circle-propcert {
        width: 18px;
        height: 18px;
        border: 2px solid #ccc;
        border-radius: 50%;
        display: flex;
        align-items: center;
        justify-content: center;
        transition: all 0.2s;
        flex-shrink: 0;
    }

    .radio-option-propcert.selected .radio-circle-propcert {
        border-color: var(--primary);
    }

    .radio-circle-propcert::after {
        content: "";
        width: 10px;
        height: 10px;
        border-radius: 50%;
        background: transparent;
        transition: all 0.2s;
    }

    .radio-option-propcert.selected .radio-circle-propcert::after {
        background: var(--primary);
    }

    .radio-option-propcert input[type="radio"] {
        display: none;
    }

    .radio-option-label {
        user-select: none;
    }

    /* Legacy styles kept for compatibility */
    .service-option-card {
        background: var(--muted);
        border-radius: 8px;
        padding: 20px;
        margin-bottom: 16px;
    }

    .service-option-card h4 {
        font-size: 16px;
        font-weight: 600;
        color: var(--foreground);
        margin-bottom: 12px;
    }

    .service-option-card .option-label {
        font-size: 13px;
        color: var(--muted-foreground);
        margin-bottom: 10px;
    }

    .radio-options {
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
    }

    .radio-option {
        display: flex;
        align-items: center;
        gap: 8px;
        padding: 8px 16px;
        border: 2px solid var(--border);
        border-radius: 25px;
        cursor: pointer;
        font-size: 13px;
        font-weight: 500;
        background: var(--background);
        transition: all 0.2s;
    }

    .radio-option:hover {
        border-color: var(--primary-light);
    }

    .radio-option.selected {
        background: var(--primary);
        border-color: var(--primary);
        color: white;
    }

    .radio-option input[type="radio"] {
        display: none;
    }

    .radio-circle {
        width: 16px;
        height: 16px;
        border: 2px solid var(--border);
        border-radius: 50%;
        display: flex;
        align-items: center;
        justify-content: center;
        transition: all 0.2s;
    }

    .radio-option.selected .radio-circle {
        border-color: white;
    }

    .radio-circle::after {
        content: "";
        width: 8px;
        height: 8px;
        border-radius: 50%;
        background: transparent;
        transition: all 0.2s;
    }

    .radio-option.selected .radio-circle::after {
        background: white;
    }

    .price-tag {
        font-weight: 600;
        margin-left: 4px;
    }

    /* Form Styles */
    .form-section {
        margin-bottom: 32px;
    }

    .form-section h3 {
        font-size: 28px;
        font-weight: 500;
        color: var(--foreground);
        margin-bottom: 24px;
    }

    .form-grid {
        display: grid;
        grid-template-columns: 1fr;
        gap: 16px;
    }

    @media (min-width: 768px) {
        .form-grid {
            grid-template-columns: 1fr 1fr;
        }
    }

    .form-group {
        display: flex;
        flex-direction: column;
        gap: 6px;
    }

    .form-group.full-width {
        grid-column: 1 / -1;
    }

    .form-group label {
        font-size: 18px;
        font-weight: 400;
        color: var(--foreground);
        width: 300px;
    }

    .form-group label .required {
        color: var(--badge-red);
    }

    .select2-container.select2-container--default .select2-selection--single {
        line-height: 50px;
        padding: 5px 20px !important;
        border: 1px solid #000 !important;
        border-radius: 6px;
    }
    .form-group input,
    .form-group select,
    .form-group textarea {
        padding: 10px 12px !important;
        border: 1px solid #333333 !important;
        border-radius: 6px !important;
        font-family: inherit !important;
        font-size: 14px !important;
        color: var(--foreground) !important;
        height: 50px !important;
        background: #f9f9f9 !important;
        transition: border-color 0.2s !important;
    }

    .form-group input:focus,
    .form-group select:focus,
    .form-group textarea:focus {
        outline: none;
        border-color: var(--primary);
    }

    .form-group input:read-only {
        background: var(--muted);
        cursor: not-allowed;
    }

    .form-group input.error {
        border-color: var(--badge-red);
    }

    .form-group textarea {
        resize: vertical;
        min-height: 80px;
    }

    /* Address Form Rows - Horizontal Layout */
    .address-form-rows {
        display: flex;
        flex-direction: column;
        gap: 16px;
    }

    .address-row {
        display: flex;
        align-items: center;
        gap: 16px;
        margin-bottom: 16px;
    }
    
      .address-row:last-child {
      margin-bottom: 0;
    }

    .address-row label {
        flex: 0 0 200px;
        font-size: 18px;
        font-weight: 400;
        color: var(--foreground);
    }

    .address-row input {
        flex: 1 !important;
        padding: 10px 12px !important;
        border: 1px solid #333333 !important;
        border-radius: 6px !important;
        font-family: inherit !important;
        font-size: 14px !important;
        color: var(--foreground) !important;
        height: 50px !important;
        background: #f9f9f9 !important;
        transition: border-color 0.2s !important;
    }

    .address-row input:read-only {
        background: var(--muted);
    }

    .address-row input:focus {
        outline: none;
        border-color: var(--primary);
    }

    .address-row input.error {
        border-color: var(--badge-red);
    }

    .address-input-wrapper {
        flex: 1;
        position: relative;
    }

    .address-input-wrapper input {
        width: 100%;
    }

    @media (max-width: 600px) {
        .address-row {
            flex-direction: column;
            align-items: flex-start;
            gap: 6px;
        }

        .address-row label {
            flex: none;
        }

        .address-row input,
        .address-input-wrapper {
            width: 100%;
        }
        .container {
            width: 100%;
        }
    }

    /* Address Search */
    .address-search-container {
        position: relative;
    }

    .address-suggestions {
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        background: var(--background);
        border: 1px solid var(--border);
        border-top: none;
        border-radius: 0 0 6px 6px;
        max-height: 200px;
        overflow-y: auto;
        z-index: 100;
        display: none;
        box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    }

    .address-suggestions.visible {
        display: block;
    }

    .suggestion-item {
        padding: 10px 12px;
        cursor: pointer;
        font-size: 14px;
        border-bottom: 1px solid var(--border);
    }

    .suggestion-item:last-child {
        border-bottom: none;
    }

    .suggestion-item:hover {
        background: var(--muted);
    }

    .suggestion-loading {
        padding: 12px;
        text-align: center;
        color: var(--muted-foreground);
        font-size: 14px;
    }
    
        /* Manual Entry Link */
    .manual-entry-link {
      margin-top: 8px;
      font-size: 13px;
      color: var(--muted-foreground);
    }
    
    .manual-entry-link span {
      cursor: pointer;
      transition: color 0.2s;
    }
    
    .manual-entry-link span:hover {
      color: var(--primary);
    }
    
    .manual-entry-link strong {
      color: var(--primary);
      text-decoration: underline;
    }
    
    .address-field {
      transition: background-color 0.2s;
    }
    
    .address-field:not(:read-only) {
      background: white;
    }
    
    .address-field:read-only {
      background: var(--muted);
    }

    /* Navigation Buttons */
    .nav-buttons {
        display: flex;
        justify-content: space-between;
        padding-top: 24px;
    }

    .btn {
        padding: 14px 40px;
        border: none;
        border-radius: 6px;
        font-family: inherit;
        font-size: 16px;
        font-weight: 600;
        cursor: pointer;
        transition: all 0.2s;
        text-transform: uppercase;
        letter-spacing: 0.5px;
    }

    .btn-primary {
        background: var(--primary);
        color: white;
    }

    .btn-primary:hover {
        background: var(--primary-dark);
    }

    .btn-outline {
        background: #141b38;
        border: 2px solid var(--border);
        color: #ffffff;
    }

    .btn-outline:hover {
        border-color: var(--primary);
        color: var(--primary);
    }

    /* Order Summary */
    .order-summary {
        padding: 0 0 24px 0;
    }

    .quote-header {
        display: flex;
        flex-direction: column;
        gap: 24px;
        margin-bottom: 24px;
    }

    .quote-header {
        display: flex;
        flex-direction: column;
        gap: 24px;
        margin-bottom: 24px;
    }

    @media (min-width: 768px) {
        .quote-header {
            flex-direction: row;
            justify-content: space-between;
            align-items: flex-start;
        }
    }
    .quote-address h2 {
        font-size: 28px;
        font-weight: 600;
        color: var(--primary);
        margin-bottom: 8px;
    }

    .quote-address p {
        font-size: 18px;
        font-weight: 600;
        color: var(--foreground);
    }

    .quote-address .subtitle {
        font-size: 14px;
        color: var(--muted-foreground);
        margin-top: 8px;
        font-weight: 400;
    }

    .quote-total {
        text-align: left;
    }

    @media (min-width: 768px) {
        .quote-total {
            text-align: right;
        }
    }

    .quote-total .label {
        font-size: 18px;
        font-weight: 500;
        text-align: left;
        margin-bottom: 2px;
        color: var(--foreground);
    }

    .quote-total .amount {
        font-size: 32px;
        font-weight: 700;
        text-align: left;
        margin-bottom: 0px;
        color: var(--foreground);
    }

    .quote-total .vat {
        font-size: 12px;
        font-weight: 400;
        color: var(--muted-foreground);
    }

    .summary-grid {
        display: grid;
        grid-template-columns: 1fr;
        gap: 32px;
        margin-top: 24px;
    }

    @media (min-width: 768px) {
        .summary-grid {
            grid-template-columns: 1fr 1fr;
        }
    }

    .summary-section h3 {
        font-size: 26px;
        font-weight: 500;
        color: var(--primary);
        margin-bottom: 16px;
        display: flex;
        align-items: center;
        justify-content: space-between;
    }

    .edit-link {
        font-size: 14px;
        color: #000;
        text-decoration: none;
        display: flex;
        align-items: center;
        gap: 4px;
        font-weight: 500;
    }

    .edit-link:hover {
        text-decoration: underline;
    }

    .info-table {
        background: var(--muted);
        border-radius: 6px;
        padding: 16px;
    }

    .info-row {
        display: flex;
        padding: 6px 0;
    }

    .info-label {
        width: 100px;
        color: var(--muted-foreground);
        font-size: 14px;
    }

    .info-value {
        flex: 1;
        font-size: 14px;
        color: var(--foreground);
    }

    .service-list {
        display: flex;
        flex-direction: column;
        gap: 8px;
    }

    .service-row {
        display: flex;
        justify-content: space-between;
        font-size: 16px;
        font-weight: 600;
    }

    .service-name {
        color: var(--foreground);
    }

    .service-price {
        font-weight: 600;
        color: var(--foreground);
    }

    .next-steps {
        margin-top: 24px;
    }

    .next-steps p {
        font-size: 14px;
        font-weight: 500;
        font-style: italic;
        margin-bottom: 8px;
    }

    .next-steps ol {
        list-style: none;
        padding: 0;
    }

    .next-steps li {
        font-size: 14px;
        color: var(--muted-foreground);
        font-style: italic;
        padding: 2px 0;
    }

    .terms-section {
        margin-top: 24px;
        padding-top: 24px;
        border-top: 1px solid var(--border);
    }

    .terms-checkbox {
        display: flex;
        align-items: center;
        gap: 8px;
        cursor: pointer;
    }

    .terms-checkbox input {
        width: 18px;
        height: 18px;
        accent-color: var(--primary);
    }

    .terms-checkbox label {
        font-size: 14px;
        color: var(--foreground);
        cursor: pointer;
    }

    .terms-checkbox a {
        color: var(--primary);
        text-decoration: none;
    }

    .terms-checkbox a:hover {
        text-decoration: underline;
    }

    .payment-icons {
        display: flex;
        gap: 8px;
        margin-top: 16px;
    }

    .payment-icons img {
        height: 24px !important;
        object-fit: contain;
    }
    /* Hidden class */
    .hidden {
        display: none !important;
    }

    /* Divider */
    hr {
        border: none;
        border-top: 1px solid var(--border);
        margin: 24px 0;
    }

    /* Contact Access Fields */
    .contact-access-fields {
        margin-top: 16px;
        padding: 20px;
        background: var(--muted);
        border-radius: 8px;
    }

    .contact-access-fields .form-grid {
        margin-top: 0;
    }

    .sub-section-title {
        font-size: 20px;
        font-weight: 500;
        color: var(--foreground);
        margin-bottom: 30px;
        margin-top: 30px;
    }

    .sub-section-title:first-of-type {
        margin-top: 25px;
    }

    /* No Quote Thank You Message Styles */
    .no-quote-message {
        background: #fff;
        border: 2px solid #e5e5e5;
        border-radius: 8px;
        padding: 24px;
        margin-bottom: 24px;
    }

    .no-quote-message h2 {
        color: #5a8a1e;
        font-size: 24px;
        font-weight: 700;
        margin-bottom: 12px;
    }

    .no-quote-message p {
        font-size: 14px;
        color: #666;
        margin-bottom: 16px;
    }

    .no-quote-message a {
        color: var(--primary);
        font-weight: 700;
        text-decoration: none;
    }

    .no-quote-message a:hover {
        text-decoration: underline;
    }

    .no-quote-service-list {
        display: none;
        flex-direction: column;
        gap: 12px;
    }

    #no-quote-user-details {
        display: none;
    }

    .no-quote-service-item {
        display: flex;
        align-items: center;
        gap: 12px;
        padding: 16px 20px;
        background: #5a8a1e;
        border-radius: 8px;
        color: white;
        font-size: 18px;
        font-weight: 600;
    }

    .no-quote-service-item .check-icon {
        width: 24px;
        height: 24px;
        background: white;
        border-radius: 4px;
        display: flex;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
    }

    .no-quote-service-item .check-icon svg {
        width: 16px;
        height: 16px;
        color: #5a8a1e;
    }

    @media (max-width: 768px) {
        .services-grid {
            gap: 0px;
        }
        .step-indicator {
            padding: 16px 12px;
        }

        .step-circle {
            width: 28px;
            height: 28px;
            font-size: 13px;
        }

        .step-label {
            font-size: 13px;
        }

        .step-connector {
            width: 40px;
            margin: 0 8px;
        }
    }

    /* Mobile layout */
    @media (max-width: 480px) {
        .step-indicator-inner {
            flex-direction: column;
            align-items: flex-start;
            width: 100%;
            gap: 12px;
        }

        .step {
            width: 100%;
            display: flex;
            align-items: center;
        }

        .step-circle {
            flex-shrink: 0;
        }

        .step-label {
            font-size: 14px;
            white-space: normal;
        }

        /* Vertical connector style */
        .step-connector {
            width: 2px;
            height: 24px;
            margin: 4px 0 4px 15px;
        }
    }

    /* Extra small devices */
    @media (max-width: 360px) {
        .step-label {
            font-size: 13px;
        }

        .step-circle {
            width: 26px;
            height: 26px;
            font-size: 12px;
        }
    }

/* Order Confirmation Styles */
.order-confirmation {
  max-width: 800px;
  margin: 0 auto;
  padding: 40px 20px;
  text-align: center;
}

.confirmation-icon {
  display: flex;
  justify-content: center;
  align-items: center;
}

.confirmation-details {
  margin-top: 32px;
  text-align: left;
}

.confirmation-box {
  background: #f8f9fa;
  border: 1px solid #e0e0e0;
  border-radius: 8px;
  padding: 24px;
  margin-bottom: 20px;
}

.confirmation-box h3 {
  color: var(--primary);
  margin: 0 0 16px 0;
  font-size: 18px;
}

.info-grid {
  display: grid;
  gap: 12px;
}

.info-item {
  display: flex;
  justify-content: space-between;
  padding: 8px 0;
  border-bottom: 1px solid #e0e0e0;
}

.info-item:last-child {
  border-bottom: none;
}

.info-item .label {
  font-weight: 500;
  color: #666;
}

.info-item .value {
  font-weight: 600;
  color: #333;
}

.confirmation-actions {
  margin-top: 32px;
  display: flex;
  justify-content: center;
  gap: 12px;
  flex-wrap: wrap;
}